Fake RPC Server for Testing
Please follow the guide for multi-node testnet. And do add the
--mainnet-url
option to specifiy a bitcoincashnode's RPC endpoint, which can be a real one or a fake one, just as following:./smartbchd start --mainnet-url=http://node-ip-address:port-number
The
bchnode
tool mimics a real bitcoincashnode's RPC behavior. You can use it with the following steps:Git clone https://github.com/smartbch/testkit.git
cd bchnode
go run main.go &
The format is
pubkey
-votingPower
-action
, where the action can be "add", "edit" or "retire".cd scripts ;# there are some utility scripts in the directory testkit/bchnode/scripts
./pubkey.sh eeed4fae3da010e393efed2aacd271971fd2383fc68109a475d6c9ef65435d52-9-add
The
bchnode
produces blocks with fixed interval (default is 3 seconds) to vote for the validators.To change the block interval to 10 seconds:
./interval.sh 10
./reorg.sh
The
bchnode
will simulate a fork at the height which is 8 blocks less than current height, and re-generate the recent 8 blocks.- 1.Configure
bchnode
to follow the voting power and pubkeys specified in genesis.json - 2.Keep the current voting power and pubkeys for three epochs.
- 3.Change the voting power setting of
bchnode
, such that at new epochs, the smartbchd follows the new voting power. - 4.Run block reorg at
bchnode
, and smartbchd can work normally. - 5.Add new validators in and let
bchnode
vote them to be active. - 6.Restart smartbchd and it can also work fine.
NumBlocksInEpoch int64 = 30
NumBlocksToClearMemory int64 = 1000s
WaitingBlockDelayTime int64 = 2s
SwitchEpochDelayTime int64 = 10s
MinVotingPercentPerEpoch = 10 //10 percent in NumBlocksInEpoch, like 2016 / 10 = 201
MinVotingPubKeysPercentPerEpoch = 34 //34 percent in active validators,
Last modified 1yr ago