Skip to content

Latest commit

 

History

History
44 lines (38 loc) · 1.44 KB

GenesisBlock.md

File metadata and controls

44 lines (38 loc) · 1.44 KB

Create genesis block

Open interactive console.

from bc4py.config import C
from bc4py.utils import set_database_path, set_blockchain_params
from bc4py.chain.genesisblock import create_genesis_block
from bc4py.database.create import check_account_db
from bc4py.user.boot import create_boot_file, import_keystone
import asyncio
 
loop = asyncio.get_event_loop()
 
# setup database path and initialize database
set_database_path()
import_keystone(passphrase='hello python')
loop.run_until_complete(check_account_db())
 
# consensus
consensus = {
    C.BLOCK_COIN_POS: 6,  # Coin staking
    C.BLOCK_CAP_POS: 6,  # Capacity staking
    C.BLOCK_FLK_POS: 7,  # fund-lock staking
    C.BLOCK_YES_POW: 27,  # Yespower mining
    C.BLOCK_X11_POW: 27,  # X11 mining
    C.BLOCK_X16S_POW: 27}  # X16S mining
 
# create first block
genesis_block, genesis_params = create_genesis_block(
    hrp='test',
    mining_supply=100000000 * 100000000,  # one hundred million mining supply
    block_span=120,  # block time
    digit_number=8,  # base currency digit
    minimum_price=100,  # minimum gas price
    consensus=consensus,  # mining consensus, key is algo value is ratio
    genesis_msg="for test params",  # genesis message
    premine=None)  # premine [(address, coin_id, amount), ...]
  
# check genesis block
set_blockchain_params(genesis_block, genesis_params)
print(genesis_block.getinfo())
create_boot_file(genesis_block, genesis_params)