Custom chain
This example demonstrates how to start a short-lived Fuel node with custom consensus parameters for the underlying chain.
First, we have to import ConsensusParameters
from the fuels-tx crate:
use fuels::tx::ConsensusParameters;
Next, we can define some values for the consensus parameters:
let consensus_parameters_config = ConsensusParameters::DEFAULT
.with_max_gas_per_tx(1000)
.with_gas_price_factor(10)
.with_max_inputs(2);
Before we can start a node, we probably also want to define some genesis coins and assign them to an address:
let wallet = WalletUnlocked::new_random(None);
let coins = setup_single_asset_coins(
wallet.address(),
Default::default(),
DEFAULT_NUM_COINS,
DEFAULT_COIN_AMOUNT,
);
Finally, we call setup_test_client()
, which starts a node with the given configs and returns a client:
let node_config = Config::local_node();
let (client, _) = setup_test_client(
coins,
vec![],
Some(node_config),
None,
Some(consensus_parameters_config),
)
.await;
let _provider = Provider::new(client);