⌘K

Icon Link自定义链

该示例演示了如何为底层链启动一个具有自定义共识参数的短暂 Fuel 节点。

首先,我们需要导入 ConsensusParametersChainConfig

use fuels::{
    prelude::*,
    tx::{ConsensusParameters, FeeParameters, TxParameters},
};

接下来,我们可以为共识参数定义一些值:

let tx_params = TxParameters::default()
    .with_max_gas_per_tx(1_000)
    .with_max_inputs(2);
let fee_params = FeeParameters::default().with_gas_price_factor(10);
 
let mut consensus_parameters = ConsensusParameters::default();
consensus_parameters.set_tx_params(tx_params);
consensus_parameters.set_fee_params(fee_params);
 
let chain_config = ChainConfig {
    consensus_parameters,
    ..ChainConfig::default()
};

在启动节点之前,我们可能还想定义一些初始代币,并将它们分配给一个地址:

let wallet = WalletUnlocked::new_random(None);
let coins = setup_single_asset_coins(
    wallet.address(),
    Default::default(),
    DEFAULT_NUM_COINS,
    DEFAULT_COIN_AMOUNT,
);

最后,我们调用 setup_test_provider(),它会使用给定的配置启动一个节点,并返回与该节点关联的提供程序:

let node_config = NodeConfig::default();
let _provider =
    setup_test_provider(coins, vec![], Some(node_config), Some(chain_config)).await?;