该示例演示了如何为底层链启动一个具有自定义共识参数的短暂 Fuel 节点。
首先,我们需要导入 ConsensusParameters
和 ChainConfig
:
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?;