快速说明,强调这在“实际”RSK 区块链(主网和测试网)中是不可能的,因为它涉及“假”挖掘。
但是,在 Regtest 中,这确实是可能的:
(1)
使用evm_mine
JSON-RPC 方法来挖掘区块。
function evmMine () {
return new Promise((resolve, reject) => {
web3.currentProvider.send({
jsonrpc: "2.0",
method: "evm_mine",
id: new Date().getTime()
}, (error, result) => {
if (error) {
return reject(error);
}
return resolve(result);
});
});
};
await evmMine(); // Force a single block to be mined.
这与以太坊开发工具中使用的方法一致,例如 Ganache。
(2)
使用evm_increaseTime
JSON-RPC 方法增加块的时间:
function evmIncreaseTime(seconds) {
return new Promise((resolve, reject) => {
web3.currentProvider.send({
method: "evm_increaseTime",
params: [seconds],
jsonrpc: "2.0",
id: new Date().getTime()
}, (error, result) => {
if (error) {
return reject(error);
}
return asyncMine().then( ()=> resolve(result));
});
});
}
await evmIncreaseTime(600); // Force block to be mined such that ~10 minutes has passed