Nodes & Validators

Nodes

For information about DFK Chain updates, follow @dfkchain on Twitter.

Running a Mainnet Node

The basic instructions for setting up a DFK Chain mainnet node can by found in the Avalanche Subnet Docs at: https://docs.avax.network/nodes/run/subnet-node

The AvaLabs subnet-evm repository is located at: https://github.com/ava-labs/subnet-evm.

Subnet Upgrades

The DFK Chain upgrade settings are located at: https://github.com/ava-labs/public-chain-assets/blob/main/chains/53935/upgrade.json.

If you are using default directories, add the upgrade.json file to: :$HOME/.avalanchego/configs/chains/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi.

Otherwise, for details on adding the file to your node's configuration settings, see: https://docs.avax.network/subnets/customize-a-subnet#network-upgrades-enabledisable-precompiles.

Previous Upgrades

Date
Timestamp
Description

3/17/2023

1679072400

9/22/2022

1662134400

State Sync

Node operators who are only interested in current state of DFK Chain (i.e. not an archive node) can turn on State Sync for both DFK Chain and C-Chain, allowing your node to sync much faster.

To turn on State Sync, add the following to your config.json files, which by default are located in:

  • C-Chain: {chain-config-dir}/C/config.json

  • DFK Chain: {chain-config-dir}/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi/config.json

{
  "state-sync-enabled": true
}

Additional instructions can be found at: https://docs.avax.network/nodes/maintain/chain-config-flags#state-sync.

Node Snapshots

Snapshots for DFK Chain Mainnet State Sync and Archival Nodes can be downloaded from the following Torrent files:

Validators

Information about DFK Chain validators and an application to become a validator can be found at: https://validators.dfkchain.com/.

Gas Fee Distribution

Gas fees are collected by the Validator Fund smart contract and then distributed as follows:

  • 50% - Burned

  • 25% - Held in the Validator Fund and designated for the chain validators

  • 25% - Held in the Reward Fund and designated to the Quest Fund

Contracts

Addresses

Name
Mainnet
Testnet

Validator Fund

0xED6dC9FD092190C08e4afF8611496774Ded19D54

0x1465e00a408edA9acd34B9F310317C12214b7c4b

Reward Fund

0x31de6B0819BC420c3137BE2CE3Ac5414ffBFB7d1

0x8D90c2Cc1C1AF0e9b71A412d46347Ba214078947

Interfaces

interface IValidatorFund {

    event AddValidator(address validator, string nodeID);
    event Disbursement(address indexed validator, uint256 amount);
    event Process(uint256 amount);
    event RemoveValidator(address validator, string nodeID);
    event Slash(address indexed validator, uint256 amount);
    event Stake(address indexed validator, uint256 amount, uint256 endTime);
    event Unstake(address indexed validator, uint256 amount);
    
    function addressToValidator(address) view returns (address owner, string nodeID, address rewardAddress, uint256 stakeAmount, uint256 stakeStartAt, uint256 stakeEndAt, uint256 balance, uint256 lifetimeBalance, bool exists);
    function allocatedAmount() view returns (uint256);
    function burnPercentage() view returns (uint256);
    function claimBalance();
    function fundAddress() view returns (address);
    function fundPercentage() view returns (uint256);
    function getValidator(address _validator) view returns (tuple(address owner, string nodeID, address rewardAddress, uint256 stakeAmount, uint256 stakeStartAt, uint256 stakeEndAt, uint256 balance, uint256 lifetimeBalance, bool exists));
    function getValidators() view returns (tuple(address owner, string nodeID, address rewardAddress, uint256 stakeAmount, uint256 stakeStartAt, uint256 stakeEndAt, uint256 balance, uint256 lifetimeBalance, bool exists)[]);
    function govToken() view returns (address);
    function lastDistribution() view returns (uint256);
    function maxStakeAmount() view returns (uint256);
    function maxStakeDuration() view returns (uint256);
    function minStakeAmount() view returns (uint256);
    function minStakeDuration() view returns (uint256);
    function processFunds();
    function rewardPercentage() view returns (uint256);
    function totalBurn() view returns (uint256);
    function totalFund() view returns (uint256);
    function totalReward() view returns (uint256);
    function totalStake() view returns (uint256);
    function unallocated() view returns (uint256);
    function unstake();
    function validators(uint256) view returns (address);

}

ABIs

Last updated