Nodes & Validators
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 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.
Date | Timestamp | Description |
---|---|---|
3/17/2023 | 1679072400 | |
9/22/2022 | 1662134400 |
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.
Information about DFK Chain validators and an application to become a validator can be found at: https://validators.dfkchain.com/.
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
Name | Mainnet | Testnet |
---|---|---|
Validator Fund | 0xED6dC9FD092190C08e4afF8611496774Ded19D54 | 0x1465e00a408edA9acd34B9F310317C12214b7c4b |
Reward Fund | 0x31de6B0819BC420c3137BE2CE3Ac5414ffBFB7d1 | 0x8D90c2Cc1C1AF0e9b71A412d46347Ba214078947 |
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);
}
validatorFund.json
19KB
Code
Last modified 1mo ago