Install Binaries

Run With Geth

To run from source follow these steps

Clone the repository and build the source:

git clone https://github.com/masa-finance/masa-node-v1.0
cd masa-node-v1.0/src
make all

make all must be run from within the src folder

Run the tests:

make test

Add PATH

Method 1

Binaries are placed in $REPO_ROOT/build/bin. You must add the bin folder to PATH to make geth and bootnode easily invokable from the command line. For example, if Users/yourname/masa-node-v1.0 is the location you have cloned the masa-node repository to on your computer. In your terminal run

sudo nano /etc/paths
or
export PATH=$PATH:$REPO_ROOT/build/bin

Remember to source your $PATH or restart the terminal. Run echo $PATH from the command line to check that the PATH has been added correctly.

For example;

echo $PATH

gives the following response

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/quorum/build/bin:/Users/yourname/masa-node/build/bin:/usr/local/go/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands

Method 2

The second way to make geth and bootnode easily invokable is to copy the binaries located in $REPO_ROOT/build/bin to a folder already in your PATH file such as /usr/local/bin.

Method 3

You can also supplement PATH by adding add PATH=$PATH:$REPO_ROOT/build/bin to your ~/.bashrc, ~/.bash_aliases, or ~/bash_profile file.

Testing PATH

When you run geth from the command line from an arbitrary folder you will get the following output on the terminal.

geth

returns

INFO [12-08|05:37:18.131] Starting Geth on Ethereum mainnet... 
INFO [12-08|05:37:18.131] Bumping default cache on mainnet         provided=1024 updated=4096
INFO [12-08|05:37:18.131] Running with private transaction manager disabled - quorum private transactions will not be supported 
INFO [12-08|05:37:18.132] Maximum peer count                       ETH=50 LES=0 total=50
INFO [12-08|05:37:18.160] Set global gas cap                       cap=25000000
INFO [12-08|05:37:18.160] Running with private transaction manager disabled - quorum private transactions will not be supported 
INFO [12-08|05:37:18.160] Allocated trie memory caches             clean=1023.00MiB dirty=1024.00MiB
INFO [12-08|05:37:18.160] Allocated cache and file handles         database=/Users/brendanplayford/Library/Ethereum/geth/chaindata cache=2.00GiB ...
...
INFO [12-08|05:37:18.751] Started P2P networking                   self=enode://162cfffb34b0c3e76abeb9f31541737fcd3b622e35fa3b0080a14dfb9d2a53168[email protected]127.0.0.1:30303
INFO [12-08|05:37:18.752] IPC endpoint opened                      url=/Users/brendanplayford/Library/Ethereum/geth.ipc isMultitenant=false
INFO [12-08|05:37:18.752] Security Plugin is not enabled 
Fatal: Consensus not specified. Exiting!!

Initialize the node

Navigate to the node directory and initialize the first node.
The repo directory includes the genesis.json file that is used to connect to the Masa protocol at the following path ../network/testnet/genesis.json

Run the following command

cd node
geth --datadir data init ../network/testnet/genesis.json

You will get the following output;

INFO [12-09|18:22:24.031] Running with private transaction manager disabled - quorum private transactions will not be supported 
INFO [12-09|18:22:24.035] Maximum peer count                       ETH=50 LES=0 total=50
INFO [12-09|18:22:24.063] Set global gas cap                       cap=25000000
INFO [12-09|18:22:24.064] Allocated cache and file handles         database=/Users/brendanplayford/masa/masa-node-v1.0/node/data/geth/chaindata cache=16.00MiB handles=16
INFO [12-09|18:22:24.135] Writing custom genesis block 
INFO [12-09|18:22:24.140] Persisted trie from memory database      nodes=7 size=1.02KiB time="280.583µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [12-09|18:22:24.141] Successfully wrote genesis state         database=chaindata hash="69b521…fb4c77"
INFO [12-09|18:22:24.141] Allocated cache and file handles         database=/Users/brendanplayford/masa/masa-node-v1.0/node/data/geth/lightchaindata cache=16.00MiB handles=16
INFO [12-09|18:22:24.204] Writing custom genesis block 
INFO [12-09|18:22:24.205] Persisted trie from memory database      nodes=7 size=1.02KiB time="162.437µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [12-09|18:22:24.205] Successfully wrote genesis state         database=lightchaindata hash="69b521…fb4c77"

Set your node identity

Set your own identity of your node on the Masa protocol to be easily identified in a list of peers.

For example; we name our node 'MasaMoonNode' by setting the flag --identity MasaMoonNode will set up an identity for your node so it can be identified as MasaMoonNode in a list of peers.
Update your flag --identity MasaMoonNode to be unique

Start the node

In the node directory, start the node by running the following command:

PRIVATE_CONFIG=ignore geth --identity MasaMoonNode --datadir data --bootnodes enode://91a3c3d5e76b0acf05d9abddee959f1bcbc7c91537d2629288a9edd7a3df90aca[email protected]54.158.188.182:21000 --emitcheckpoints --istanbul.blockperiod 10 --mine --miner.threads 1 --syncmode full --verbosity 5 --networkid 190260 --rpc --rpccorsdomain "*" --rpcvhosts "*" --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul --port 30300

Additional Bootnodes

Masa operates several bootnodes, one is already included in the comnand above by default. If you are having issues connecting to the bootnode please use an alternaitve from the list below.

We are also looking for community run bootnodes to add to our list. Please reach out to us on Discord or Submit a PR to this repo if you want to add a bootnode to the community list.

Masa Bootnodes

enode://ac6b1096ca56b9f6d004b779ae3728bf83f8e22453404cc3cef16a3d9b96608bc[email protected]54.146.254.245:21000

enode://91a3c3d5e76b0acf05d9abddee959f1bcbc7c91537d2629288a9edd7a3df90aca[email protected]54.158.188.182:21000

enode://d87c03855093a39dced2af54d39b827e4e841fd0ca98673b2e94681d9d52d2f1b[email protected]34.225.220.240:21000

enode://fcb5a1a8d65eb167cd3030ca9ae35aa8e290b9add3eb46481d0fbd1eb10065aee[email protected]52.1.125.71:21000

Community Bootnodes

enode://269ecefca0b4cd09bf959c2029b2c2caf76b34289eb6717d735ce4ca49fbafa91[email protected]65.108.72.177:21000
enode://571be7fe060b183037db29f8fe08e4fed6e87fbb6e7bc24bc34e562adf09e29e0[email protected]142.132.135.228:21000

Submit a PR to add a bootnode to the community list here.

Node Syncing

It can take some time for your node to fully sync to the Masa Testnet 2.0 - please be patient while your node catches up with the most recent blocks.

Node UI

You must be running Docker to run the Node UI with geth

Specification

  • React.js & Typescript
  • Docker for deployment

Run The Masa Node UI

Follow these instructions to run the Node UI with geth

cd masa-node-v1.0
cd src
cd ui
docker-compose up ui

Navigate to you local host to interact with the Masa Node
http://localhost:3000


Did this page help you?