Clone Repo
Check global environment variables
Set local environment variables
.envrc.local
overrides any env vars set with .envrc
on calling direnv allow
.
Note: When passing the private key into the env vars as above please remove the 0x
prefix so the private key env var has exactly 64 characters.
BLOCK_RESULT_OPERATOR_PRIVATE_KEY:
Your personal Block Result Producer (BRP) operator private keyAGENT_KEY & PROOF.OUT File:
Your personal web3.storage Agent key & Delegation file use by the ipfs-pinner
serviceIPFS_PINNER_URL:
Service (ipfs-pinner
) used by rudder to access IPFS assets like Block Specimens (service is automatically invoked and run with the in repo docker compose files eg: docker-compose-mbeam.yml
)EVM_SERVER_URL:
Service (evm-server
) used by rudder for stateless execution of Block Specimens into indexable (queryable) Block ResultsLoad env vars into the shell.
~/.ipfs
repo. You should have gotten this from Covalent in addition to the W3_AGENT_KEY
value.Start all 4 services in the background for Moonbeam
das-pinner
instance is already running, check the instruction in the Appendix to run refiner
docker alongside.systemd
service unit file that can be used to auto-start/restart of the docker-compose service for Refiner.
evm-server
service transforms Block Specimens to Block Results entirely on the input of underlying capture of Block Specimen data.
Clone & Build evm-server
v1.3.2-evm
, build the evm-server
binaryRun the generated binary
evm-server
occupies the port 3002 on your local at http://127.0.0.1:3002
”, so make sure this port in not occupied by any other service prior to start.Clone & Build ewm-das(pinner)
Set the environment variable required by
ipfs-pinner
by getting W3_AGENT_KEY
& Proof.out
from web3.storage and adding it to an .envrc
file.Start the das-pinner server
ipfs-pinner
server.Clone Refiner
refiner
repoBLOCK_RESULT_OPERATOR_PRIVATE_KEY
that has GLMR
tokens for Moonbeam and is already whitelisted as Block Result Producer operator. Set the following environment variables for the local refiner by creating an .envrc.local
fileLoad envrc file
.envrc.local + .envrc
files with the command below and observe the following output, make sure the environment variables are loaded into the shell..envrc.local
file and loaded in the shell with direnv allow .
, build the refiner
application for the prod
env i.e moonbeam mainnet or dev
env for moonbase alpha as discussed before.Get required dep for Refiner app
refiner
app.Build Refiner app
Start the Refiner
refiner
application and execute the proof-chain block specimen listener call which should run the Refiner pipeline pulling Block Specimens from IPFS using the cids read from recent proof-chain finalized transactions, decoding them, and uploading and proofing Block Results while keeping a track of failed ones and continuing (soft real-time) in case of failure.The erlang concurrent fault tolerance allows each pipeline to be an independent worker that can fail (for any given Block Specimen) without crashing the entire pipeline application. Multiple pipeline worker children threads continue their work in the synchronous queue of Block Specimen AVRO binary files running the stateless EVM binary (evm-server
) re-execution tool.Check logs
~/.ipfs
folder execute the following in your home directory.
~/.ipfs
directory may be needed from - here.
For linux systems follow the below steps.
ipfs-pinner
instance is already running, use this modified .envrc.local
and docker-compose-mbeam.yml
0x
prefix so the private key env var has exactly 64 characters.
refiner
and evm-server
services: