docs
  • Introduction
  • Getting started
    • Meet the network using CLI
    • Your first transaction
    • Run smart contract
    • Run your own node
    • Ledger Support
  • Architecture
    • Dnode
    • Dncli
    • XFI & Other coins
    • Fees & Gas
    • Addresses
  • Staking
    • Delegate sXFI & LPT
    • Become a validator
    • Rewards & Inflation
    • Slashing
    • More
  • Move VM
    • Modules
    • Scripts
    • Script Arguments
    • Standard Library
    • Events
    • Resources
    • Move Book
    • More
  • Oracles
    • Query Price
  • PegZone
    • Deposit
    • Usage
    • Withdraw
  • Useful Resources
    • Dfinance Website
    • Wallet
    • Move Book
    • Block Explorer
    • Swagger UI
    • Community
    • VSCode Move IDE
Powered by GitBook
On this page
  • Run your dnode
  • Join mainnet with bootstrap
  • Docker Image
  • Build from source
  • Mainnet configuration (for docker or manual run)

Was this helpful?

  1. Architecture

Dnode

PreviousArchitectureNextDncli

Last updated 4 years ago

Was this helpful?

dnode is a blockchain node of dfinance platform. dnode implements core functional of dfinance: reach consensus, securing chain with PoS, processing transactions, p2p connections, etc.

You can find dnode source code .

Run your dnode

There are multiple ways of running your dnode. We've sorted them from easiest to more complicated.

Join mainnet with bootstrap

For fastest and simplest launch we recommend using . We've created it to make node launch as easy as it can be. See 4-step launch guide in its .

Docker Image

Pre-built docker image is available on Docker Hub: . It already includes binary file for dnode so if you feel like it - go on - try it yourself.

Build from source

You can build dnode from source, to do so fetch and build dnode from , use latest stable tag from page.

After that you need to:

  • Install dvm from .

  • Launch dvm with recommended port setting (or configure your own ports in both dnode and dvm).

Mainnet configuration (for docker or manual run)

First of all init your local dnode with moniker (name) of your node:

dnode init <moniker>

After that download genesis.json:

# remove default genesis created on init
rm ~/.dnode/config/genesis.json

# this solution requires 'jq' util to be installed
curl https://rpc.dfinance.co/genesis | jq '.result.genesis' > ~/.dnode/config/genesis.json

Now replace seeds in (~/.dnode/config.toml) with current seed nodes:

seeds = "122c6788e6d33718833a6020a534fed146e72ca7@pub.dfinance.co:26656,e12f9bdb7d4490b00743017807327f6172c98b32@pub2.dfinance.co:26656"

Important: if you set up full-node, you must open 26656 port on your machine, otherwise your node will not be able to broadcast and receive data from other nodes by P2P.

Once you opened port, configure your external address in (~/.dnode/config.toml):

external_address="your_ip:26656"

More detailed instruction on how to build dnode from sources can be found in . If want some more space for experiments you can also use dnode to launch your own local testnet.

If you'd like to contribute - . If you have any questions feel free to open .

in dnode Github repository
bootstrap repos
README
here's the link
Github repository
releases
dvm repository
dnode repository
see contributors section
new issue