Baseline

Sample local Baseline setup

To launch the local nodes to experiment with some Baseline commands try the example below:

Baseline configuration files have network discovery processes disabled and in the example we use static nodes instead. The static nodes configuration can be found in the Data/static-nodes-baseline.json files. Each static node there has an enode entry with a public key derived from the private key of the node (the TestNodeKey settings in our example), IP addresses, and port.

Launch node A (the test node keys are consistent with Data/static-nodes-baseline.json)

./Nethermind.Runner --config baseline --JsonRpc.Enabled true --JsonRpc.Port 8511 --Network.DiscoveryPort 30111 --Network.P2PPort 30111 --KeyStore.TestNodeKey 120102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f

Launch node B (the test node keys are consistent with Data/static-nodes-baseline.json)

./Nethermind.Runner --config baseline --JsonRpc.Enabled true --JsonRpc.Port 8522 --Network.DiscoveryPort 30222 --Network.P2PPort 30222 --KeyStore.TestNodeKey 020102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f
Initial connectivity to both nodes and deployment of the baseline tree contract
Send transaction to one node and the new block will be created and synchronized
Sample interaction with the newly deployed Baseline Merkle Tree contract (errors kept to answer FAQ)
Here we add some data to the tree and ask for Merkle proofs (sibling paths)
Verification of a leaf against the root and the siblings path.

Find below a high-level overview of the Baseline Protocol Atomic Workflow Step with Provide infrastructure and Nethermind node serving as a gateway to Ethereum mainnet and maintaining data from the Baseline Merkle trees.