Configuration Reference
ELA Main Chain Configuration
File: config.json (loaded by common/config/config.go)
Economic Parameters
| Parameter | Mainnet Value | Description |
|---|---|---|
OriginIssuanceAmount | 3,300,000,000,000,000 Sela (33M ELA) | Initial total supply |
AfterBurnIssuanceAmount | 2,000,000,000,000,000 Sela (20M ELA) | Post-burn supply for inflation calc |
inflationPerYear | 4% of issuance amount | Annual inflation rate |
TargetTimePerBlock | 120 seconds (2 minutes) | Target block interval |
TargetTimespan | 86,400 seconds (24 hours) | Difficulty retarget window |
CoinbaseMaturity | 100 blocks | Blocks before coinbase spendable |
MinTransactionFee | 100 Sela (0.000001 ELA) | Minimum transaction fee |
MinCrossChainTxFee | 10,000 Sela (0.0001 ELA) | Minimum cross-chain fee |
ReturnDepositCoinFee | 100 Sela | Return deposit tx fee |
RectifyTxFee | 10,000 Sela | Elastos Council rectify tx fee |
RealWithdrawSingleFee | 10,000 Sela | Elastos Council real withdraw fee |
BPoS Parameters
| Parameter | Mainnet Value | Description |
|---|---|---|
NormalArbitratorsCount | 24 (default); variable per network | Elected BPoS validators (variable under BPoS; value is chain-specific — see your deployment’s config.json or nodes.elastos.net) |
CandidatesCount | 72 (default); configurable per network | Backup candidates |
MemberCount | 12 | Elastos Council size |
CRAgreementCount | 8 | Elastos Council members needed for agreement |
SignTolerance | 5 seconds | Signing time tolerance |
MaxInactiveRounds | 1,440 (720 * 2) | Rounds before inactive penalty (~2 days) |
DPoSV2IllegalPenalty | 20,000,000,000 Sela (200 ELA) | Illegal behavior penalty |
SmallCrossTransferThreshold | 100,000,000 Sela (1 ELA) | Single-sig threshold |
Governance Heights (Mainnet)
Historical activation heights
These are one-time activation heights from the chain configuration. They record when each feature was originally enabled on mainnet and are not subject to change.
| Parameter | Height | Purpose |
|---|---|---|
VoteStartHeight | 290,000 | Voting for producers begins |
CRCOnlyDPOSHeight | 343,400 | Elastos Council-only BPoS consensus starts |
PublicDPOSHeight | 402,680 | Public BPoS opens |
CRVotingStartHeight | 537,670 | Elastos Council candidate voting begins |
CRCommitteeStartHeight | 658,930 | First Elastos Council seated |
CRClaimDPOSNodeStartHeight | 751,400 | Elastos Council members can claim BPoS nodes |
NoCRCDPOSNodeHeight | 932,530 | Elastos Council nodes no longer guaranteed |
HalvingRewardHeight | 1,051,200 | First block reward halving |
HalvingRewardInterval | 1,051,200 | Halving interval (~4 years) |
DPoSV2StartHeight | 1,405,000 | BPoS (staking) activates |
Network Configuration
| Parameter | Default | Description |
|---|---|---|
NodePort | 20338 | P2P listen port |
DPoSPort | 20339 | DPoS P2P port |
HttpJsonPort | 20336 | JSON-RPC port |
HttpRestPort | 20334 | REST API port |
HttpWsPort | 20335 | WebSocket port |
HttpInfoPort | 20333 | Node info page port |
MaxNodePerHost | 72 | Max connections per IP |
MaxConnInBound | 1024 | Max inbound connections |
MaxConnOutBound | 64 | Max outbound connections |
Protocol Constants
const (
ProtocolVersion uint32 = 20000 // DPoS protocol version
MaxBlocksPerMsg = 500 // Max blocks per P2P message
MaxTxPoolSize = 20000000 // Max mempool size (bytes)
MaxBlockContextSize uint32 = 8000000 // Max block size (8 MB)
MaxBlockHeaderSize uint32 = 1000000 // Max header message size
MaxTxPerBlock uint32 = 10000 // Max transactions per block
IrreversibleHeight = 6 // Max reorg depth
)
Arbiter Configuration
File: config.json (loaded by config/config.go)
| Parameter | Description |
|---|---|
MainNode.Rpc | Main chain RPC endpoint (host:port) |
MainNode.SpvSeedList | SPV seed nodes for main chain P2P |
SideNodeList[].Rpc | Sidechain RPC endpoints |
SideNodeList[].GenesisBlockAddress | Sidechain genesis block address |
SideNodeList[].PowChain | Whether sidechain uses AuxPoW |
SideNodeList[].MiningAddr | Sidechain mining address |
SyncInterval | Arbiter duty sync interval |
HttpJsonPort | Arbiter's own RPC port |
Hive Node Configuration
Class: src/settings.py → HiveSetting
| Parameter | Description |
|---|---|
DATA_STORE_PATH | Data storage directory path |
MONGODB_URL | MongoDB connection string (e.g. mongodb://localhost:27017) |
IPFS_NODE_URL | IPFS API endpoint |
EID_RESOLVER_URL | EID resolver endpoint for DID verification |
PAYMENT_CONTRACT | ESC smart contract address for payments |
PAYMENT_RECEIVING_ADDRESS | ELA payment receiving address |
AUTH_CHALLENGE_EXPIRED | Challenge expiry (seconds) |
ACCESS_TOKEN_EXPIRED | JWT token expiry (seconds) |