For the complete documentation index, see llms.txt. This page is also available as Markdown.

Block Consensus Contract

blkendt.xsat

This contract processes votes from validators on the hash of each Bitcoin block. When more than two-thirds of the validators submit the same hash for a block, and it matches the hash of the block data submitted by the Synchronizer, the block is considered to have reached consensus.

Actions

  • Endorse a block

QuickStart

# config @blkendt.xsat
$ cleos push action blkendt.xsat config '{"limit_endorse_height": 840000, "limit_num_endorsed_blocks": 4, "min_validators": 15, "consensus_interval_seconds": 480, "xsat_stake_activation_height": 860000}' -p blkendt.xsat

# erase @utxomng.xsat
$ cleos push action blkendt.xsat erase '{"height": 840000}' -p utxomng.xsat

# endorse @validator
$ cleos push action blkendt.xsat endorse '{"validator": "alice", "height": 840000, "hash": "0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5"}' -p alice

# setqualify @auth get_self()
$ cleos push action blkendt.xsat setqualify '{"min_xsat_qualification": "2100.00000000 XSAT", "min_btc_qualification": "100.00000000 BTC"}' -p blkendt.xsat

# setconheight @auth get_self()
$ cleos push action blkendt.xsat setconheight '{"xsat_stake_activation_height": 890000, "xsat_reward_height": 890000}' -p blkendt.xsat  

# revote @auth synchronizer
$ cleos push action blkendt.xsat revote '{"synchronizer": "synchronizer", "height": 840000}' -p synchronizer

Table Information

STRUCT requested_validator_info

  • {name} account - validator account

  • {uint64_t} staking - the validator's staking amount

STRUCT provider_validator_info

  • {name} account - validator account

  • {uint64_t} staking - the validator's staking amount

  • {time_point_sec} created_at - created at time

example

TABLE config

scope

blkendt.xsat

params

  • {uint64_t} limit_endorse_height - limit the endorsement height. If it is 0, there will be no limit. If it is greater than this height, endorsement will not be allowed.

  • {uint16_t} limit_num_endorsed_blocks - limit the endorsement height to no more than the number of blocks of the parsed height. If it is 0, there will be no limit.

  • {uint16_t} min_validators - the minimum number of validators, which limits the number of validators that pledge more than 100 BTC at the time of first endorsement.

  • {uint16_t} consensus_interval_seconds - the interval in seconds between consensus rounds.

  • {uint64_t} xsat_stake_activation_height - block height at which XSAT staking feature is activated

  • {asset} min_xsat_qualification - minimum XSAT amount required for qualification

  • {asset} min_btc_qualification - minimum BTC amount required for qualification

  • {uint64_t} xsat_reward_height - block height at which XSAT rewards are activated

  • {uint64_t} validator_active_vote_count - count of active validator votes

example

TABLE endorsements

scope

height

params

  • {uint64_t} id - primary key

  • {checksum256} hash - endorsement block hash

  • {std::vector<requested_validator_info>} requested_validators - list of unendorsed validators

  • {std::vector<provider_validator_info>} provider_validators - list of endorsed validators

example

TABLE revote_record

scope

blkendt.xsat

params

  • {uint64_t} id - primary key

  • {uint64_t} height - height

  • {std::vector<name>} synchronizers - synchronizers

  • {uint8_t} status - status

  • {time_point_sec} created_at - created at time

  • {time_point_sec} updated_at - updated at time

example

ACTION config

  • authority: blkendt.xsat

Configure endorsement status

params

  • {uint64_t} limit_endorse_height - limit the endorsement height. If it is 0, there will be no limit. If it is greater than this height, endorsement will not be allowed.

  • {uint16_t} limit_num_endorsed_blocks - limit the endorsement height to no more than the number of blocks of the parsed height. If it is 0, there will be no limit.

  • {uint16_t} min_validators - the minimum number of validators, which limits the number of validators that pledge more than 100 BTC at the time of first endorsement.

  • {uint64_t} xsat_stake_activation_height - block height at which XSAT staking feature is activated

  • {uint16_t} consensus_interval_seconds - the interval in seconds between consensus rounds.

example

ACTION endorse

  • authority: validator

Endorsement block

params

  • {name} validator - validator account

  • {uint64_t} height - to endorse the height of the block

  • {checksum256} hash - to endorse the hash of the block

example

ACTION erase

  • authority: utxomng.xsat

To erase high endorsements

params

  • {uint64_t} height - to endorse the height of the block

example

ACTION revote

  • authority: synchronizer

To initiate a revote for a specific height

params

  • {name} synchronizer - synchronizer account

  • {uint64_t} height - height

example

ACTION setqualify

  • authority: endrmng.xsat or blkendt.sat

Set the minimum pledge amount of xast to become a validator

params

  • {asset} min_xsat_qualification - the minimum pledge amount of xast to become a validator

  • {asset} min_btc_qualification - the minimum pledge amount of btc to become a validator

example

ACTION setconheight

  • authority: blkendt.sat

Set the XSAT stake activation height and XSAT reward height

params

  • {uint64_t} xsat_stake_activation_height - block height at which XSAT staking feature is activated

  • {uint64_t} xsat_reward_height - block height at which XSAT reward feature is activated

example

Last updated