Closed firesWu closed 5 years ago
You can follow an eosio archive article: https://developers.eos.io/eosio-nodeos/docs/bios-boot-sequence
With EOSFactory, it can be implemented as it follows:
##############################################################################
import os from eosfactory.eosf import * import eosfactory.core.cleos as cleos import eosfactory.core.setup as setup import eosfactory.core.config as config
eosio_contracts_dir = os.path.join( config.eosio_repository_dir(), "build/contracts")
reset()
create_master_account("eosio")
COMMENT('''Create important system accounts''')
create_account("eosio_bpay", eosio, "eosio.bpay") create_account("eosio_msig", eosio, "eosio.msig") create_account("eosio_names", eosio, "eosio.names") create_account("eosio_ram", eosio, "eosio.ram") create_account("eosio_ramfee", eosio, "eosio.ramfee") create_account("eosio_saving", eosio, "eosio.saving") create_account("eosio_stake", eosio, "eosio.stake") create_account("eosio_token", eosio, "eosio.token") create_account("eosio_vpay", eosio, "eosio.vpay")
COMMENT('''Install the eosio.token contract''')
contract = "eosio.token" Contract( contract, os.path.join(eosio_contracts_dir, contract), abi_file = contract + ".abi", wasm_file = contract + ".wasm" ).deploy()
COMMENT('''Set the eosio.msig contract''')
contract = "eosio.msig" Contract( contract, os.path.join(eosio_contracts_dir, contract), abi_file = contract + ".abi", wasm_file = contract + ".wasm" ).deploy()
COMMENT('''Create and allocate the SYS currency''')
eosio_token.push_action( "create", [eosio, "10000000000.0000 SYS"], (eosio_token, Permission.ACTIVE))
eosio_token.push_action( "issue", [eosio, "1000000000.0000 SYS", "memo"], (eosio, Permission.ACTIVE))
COMMENT('''Set the eosio.system contract''')
contract = "eosio.system" Contract( eosio, os.path.join(eosio_contracts_dir, contract), abi_file = contract + ".abi", wasm_file = contract + ".wasm" ).deploy()
##############################################################################
However, this code fails due to a bug in nodeos (notorious "Transaction took too long")
We patch the bug in the new edition of EOSFactory, coming soon. There, we write an article on eosio 'BIOS Boot Sequence' as implemented with EOSFactory
When I deploy eosio.system in local testnet , I can use it, because it has this code.