Giter VIP home page Giter VIP logo

idena-go's Introduction

Idena Go

Golang implementation of the Idena network node

Build Status

Building the source

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

Running 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.

CLI parameters

  • --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)

JSON config

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.

Local automine node

Config

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
}
Description
  • 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 number
  • Ipfs bootnodes - array of bootstrap nodes in case of running multiple local nodes

For more detailed configuration please see config structure

idena-go's People

Contributors

1scrooge avatar aidenaio avatar busimus avatar dependabot-preview[bot] avatar dependabot[bot] avatar devkodev avatar henryfour avatar icook avatar mbidenaio avatar midenaio avatar ridenaio avatar rioda-org avatar sidenaio avatar sinornis avatar vlddm avatar willclarktech avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.