Skip to main content

Local network generation

Here, you will learn how to launch a local network with custom settings, initial coins and rolls distribution.

This may be useful for instance if you want to build and test your integration on the latest version of the nodes.

Clone massa:

git clone git@github.com:massalabs/massa.git

Compile it with the sandbox feature enabled:

cd massa && cargo build --release --features sandbox

Create a keypair in massa-client:

cd massa-client && cargo run
wallet_generate_secret_key

For the rest of the tutorial we will use theses abbreviations:

  • SECRETK: The secret you just generated
  • PUBK: The public key corresponding to SECRETK
  • ADDR: The address corresponding to PUBK

Setup your node to use the secret you just generated as its public key and staking key:

  • modify or create the file massa-node/config/node_privkey.key:

    {"secret_key":"SECRETK","public_key":"PUBK"}
  • modify the file massa-node/base_config/initial_ledger.json:

    {
    "ADDR": {
    "balance": "80000000",
    "datastore": [],
    "bytecode": []
    }
    }
  • CLEAR and modify the file massa-node/base_config/initial_rolls.json:

    {
    "ADDR": 100
    }
  • You also have to modify the file massa-client/base_config/config.toml to match the same ChainID as a Sandbox node, as it defaults to the Mainnet ChainID of 77658377.

    ...
    chain_id = 77
    ...

You can now launch your node:

cd massa-node && cargo run --features sandbox

On your client run the following command to add your secret key as staking key:

cd massa-client && cargo run node_start_staking ADDR

The local network and your node will start after 10 seconds. Once it is started, you can interact with it using the CLI client as you would with a node on a public network.