git clone https://github.com/0glabs/0g-da-node.git
cd 0g-da-node
Build the project
cargo build --release
Download necessary parameters
./dev_support/download_params.sh
Generate BLS Private Key (if needed)
cargo run --bin key-gen
Configure the Node
Create a configuration file named config.toml
nano config.toml
log_level = "info"
data_path = "./db/"
# path to downloaded params folder
encoder_params_dir = "params/"
# grpc server listen address
grpc_listen_address = "0.0.0.0:34000"
# chain eth rpc endpoint
eth_rpc_endpoint = "https://evmrpc-testnet.0g.ai"
# public grpc service socket address to register in DA contract
# ip:34000 (keep same port as the grpc listen address)
# or if you have dns, fill your dns
socket_address = "<your-public-ip>:34000"
prometheus_exporter_address = "0.0.0.0:9090"
# data availability contract to interact with
da_entrance_address = "0x857C0A28A8634614BB2C96039Cf4a20AFF709Aa9" # testnet config and see testnet page for the latest info
# deployed block number of da entrance contract
start_block_number = 940000 # testnet config
# signer BLS private key
signer_bls_private_key = ""
# signer eth account private key
signer_eth_private_key = ""
# miner eth account private key, (could be the same as `signer_eth_private_key`, but not recommended)
miner_eth_private_key = ""
# whether to enable data availability sampling
enable_das = "true"
Key
Function
Used by
signer_bls_private_key
BLS-based signing for consensus
Validators in PoS or BLS-based systems
signer_eth_private_key
Signing transactions or blocks in Ethereum-based systems
Signers in PoA, PoS, or other systems requiring Ethereum signatures