Golang implementation of the Idena network node
Building idena-go
required a Go (version 1.16 or later) and a C compiler. idena-go
uses Go modules as a dependency manager. Once the dependencies are installed, run
go build
idena-go
To connect to idena experimental mainnet
network run executable without parameters. idena-go
uses go-ipfs
and private ipfs network to store data.
--config
Use custom configuration file--datadir
Node data directory (default datadir
)--rpcaddr
RPC listening address (default localhost
)--rpcport
RPC listening port (default 9009
)--ipfsport
IPFS P2P port (default 40405
)--ipfsportstatic
Prevent changing IPFS port (default false
)--ipfsbootnode
Set custom bootstrap node--fast
Use fast sync (default true
)--verbosity
Log verbosity (default 3
- Info
)--nodiscovery
Do not discover another nodes (default false
)--profile=lowpower
Reduce bandwidth usage--apikey
Set RPC API key--logfilesize
Set maximum log file size in KB (default 10240
)Custom json configuration can be used if --config=<config file name>
parameter is specified. Use server
IPFS profile if you run idena-go
on VPS to prevent local network scanning.
{
"DataDir": "datadir",
"P2P": {
"MaxInboundPeers": 12,
"MaxOutboundPeers": 6
},
"RPC": {
"HTTPHost": "localhost",
"HTTPPort": 9009
},
"IpfsConf": {
"Profile": "server",
"IpfsPort": 40405,
"BlockPinThreshold": 0.3,
"FlipPinThreshold": 0.5
},
"Sync": {
"FastSync": true
}
}
By default, blocks and flips are pinned in local ipfs storage with 30% and 50% probability respectively. If you want to pin (save) locally all blocks and flips, set 1 for BlockPinThreshold
and FlipPinThreshold
.
For debug purposes you can run local automine node with this config.
{
"IpfsConf": {
"BootNodes": [],
"Profile": "server",
"IpfsPort": 60606
},
"RPC": {
"HTTPHost": "localhost",
"HTTPPort": 9111
},
"GenesisConf": {
"GodAddress": "0x0000000000000000000000000000000000000000",
"FirstCeremonyTime": 1700000000
},
"Consensus": {
"Automine": true
},
"Validation": {
"ValidationInterval": 300000000000,
"FlipLotteryDuration": 10000000000,
"ShortSessionDuration": 40000000000,
"LongSessionDuration": 40000000000,
"AfterLongSessionDuration": 10000000000
},
"Network": 3
}
GodAddress
- the address which refers to private key in nodekey file. So, when you are running automine node, you should see log in console Coinbase address addr=<addr>
with this address. This address will mine coins if network has 0 valid identities;FirstCeremonyTime
- timestamp of first validation ceremony;Validation section
- duration of each validation period in nanoseconds;Network
- should be different from 1 or 2, any uint32
numberIpfs bootnodes
- array of bootstrap nodes in case of running multiple local nodesFor more detailed configuration please see config structure