Skip to main content
ALL CHAINS

Configuration Reference

ELA Main Chain Configuration

File: config.json (loaded by common/config/config.go)

Economic Parameters

ParameterMainnet ValueDescription
OriginIssuanceAmount3,300,000,000,000,000 Sela (33M ELA)Initial total supply
AfterBurnIssuanceAmount2,000,000,000,000,000 Sela (20M ELA)Post-burn supply for inflation calc
inflationPerYear4% of issuance amountAnnual inflation rate
TargetTimePerBlock120 seconds (2 minutes)Target block interval
TargetTimespan86,400 seconds (24 hours)Difficulty retarget window
CoinbaseMaturity100 blocksBlocks before coinbase spendable
MinTransactionFee100 Sela (0.000001 ELA)Minimum transaction fee
MinCrossChainTxFee10,000 Sela (0.0001 ELA)Minimum cross-chain fee
ReturnDepositCoinFee100 SelaReturn deposit tx fee
RectifyTxFee10,000 SelaElastos Council rectify tx fee
RealWithdrawSingleFee10,000 SelaElastos Council real withdraw fee

BPoS Parameters

ParameterMainnet ValueDescription
NormalArbitratorsCount24 (default); variable per networkElected BPoS validators (variable under BPoS; value is chain-specific — see your deployment’s config.json or nodes.elastos.net)
CandidatesCount72 (default); configurable per networkBackup candidates
MemberCount12Elastos Council size
CRAgreementCount8Elastos Council members needed for agreement
SignTolerance5 secondsSigning time tolerance
MaxInactiveRounds1,440 (720 * 2)Rounds before inactive penalty (~2 days)
DPoSV2IllegalPenalty20,000,000,000 Sela (200 ELA)Illegal behavior penalty
SmallCrossTransferThreshold100,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.

ParameterHeightPurpose
VoteStartHeight290,000Voting for producers begins
CRCOnlyDPOSHeight343,400Elastos Council-only BPoS consensus starts
PublicDPOSHeight402,680Public BPoS opens
CRVotingStartHeight537,670Elastos Council candidate voting begins
CRCommitteeStartHeight658,930First Elastos Council seated
CRClaimDPOSNodeStartHeight751,400Elastos Council members can claim BPoS nodes
NoCRCDPOSNodeHeight932,530Elastos Council nodes no longer guaranteed
HalvingRewardHeight1,051,200First block reward halving
HalvingRewardInterval1,051,200Halving interval (~4 years)
DPoSV2StartHeight1,405,000BPoS (staking) activates

Network Configuration

ParameterDefaultDescription
NodePort20338P2P listen port
DPoSPort20339DPoS P2P port
HttpJsonPort20336JSON-RPC port
HttpRestPort20334REST API port
HttpWsPort20335WebSocket port
HttpInfoPort20333Node info page port
MaxNodePerHost72Max connections per IP
MaxConnInBound1024Max inbound connections
MaxConnOutBound64Max 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)

ParameterDescription
MainNode.RpcMain chain RPC endpoint (host:port)
MainNode.SpvSeedListSPV seed nodes for main chain P2P
SideNodeList[].RpcSidechain RPC endpoints
SideNodeList[].GenesisBlockAddressSidechain genesis block address
SideNodeList[].PowChainWhether sidechain uses AuxPoW
SideNodeList[].MiningAddrSidechain mining address
SyncIntervalArbiter duty sync interval
HttpJsonPortArbiter's own RPC port

Hive Node Configuration

Class: src/settings.pyHiveSetting

ParameterDescription
DATA_STORE_PATHData storage directory path
MONGODB_URLMongoDB connection string (e.g. mongodb://localhost:27017)
IPFS_NODE_URLIPFS API endpoint
EID_RESOLVER_URLEID resolver endpoint for DID verification
PAYMENT_CONTRACTESC smart contract address for payments
PAYMENT_RECEIVING_ADDRESSELA payment receiving address
AUTH_CHALLENGE_EXPIREDChallenge expiry (seconds)
ACCESS_TOKEN_EXPIREDJWT token expiry (seconds)