abeychain adopts hybrid consensus, fPow + DPoS. The DPoS committee members use pbft protocol to produce fast blocks which include transactions and to confirm the previous snail blocks. The fPoW miners mine fruits (point to fast blocks) and snail blocks (include fruits) to resit the long range attack and to prevent tampering.
Reward
The business module of abeychain is deflation. The staking reward wil deflate 20% every year. From March 30th 2020, the annumal reward will be 3,000,000, 2,400,000, 1,920,000, ...
Validator
Validators are the DPoS committee members to process transactions. The minimum amount to be validator is 20,000 abey.
The recommended specifications for running a validator node is:
4 cores CPU
16G RAM
200G disk space
4Mpbs bandwidth
public ip address to participate the committee
Locked Time
Assets will freeze after staking. And 25,000 fast blocks(about 15 days) need to unfreeze.
Stake Guide
Staking Contract
abeychain staking contract is deployed at address:
0x000000000000000000747275657374616b696E67
RPC and SDK
Building CLI
Building-abeychain
Follow the appropriate link below to find installation instructions for your platform.
gabey will listen all ip address when giving --rpcaddr 0.0.0.0, you can give the exact ip address that want to connect, or --rpcaddr 127.0.0.1 only allow running on the host to connect gabey.
gabey support BFT
./gabey --bftip 39.98.251.xx console
bftip must be public ip, open firewall port 8545(rpc),30310(bftport),30311(bftport2)
--keystore flag show load private key in UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx file.
--rpcaddr--rpcport flag show connect node ip + port,this node should you run validator node, because of it will use your local bft pk to election.
querystaking print in staking count(Staked), already cancel count(Locked), can withdraw count(Unlocked)..
Print withdraw height, after this, you can call withdraw, if lock equal false, can instant withdraw .
If Unlocked not equal zero, can instant withdraw print amount.
Output Log
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.xxx:8545 current number 4468689 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Staked 49990000000000000000000 wei = 49990 abey Locked 10000000000000000000 wei = 10 abey Unlocked 0 wei = 0 abey
Your can withdraw after height 4471006 count value 10 abey index 0 lock abey
--keystore flag show load private key in UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx file.
--rpcaddr--rpcport flag show connect node ip + port,this node should you run validator node, because of it will use your local bft pk to election.
--value want withdraw count abey.
withdraw Sub command append represent you want withdraw 10 abey to your address .
Output Log
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.84.72:8545 current number 4501013 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet balance is 1.7779438190969483348e+07 'abey current Total Stake 700402
TX data nonce 20 transfer value 0 gasLimit 861784 gasPrice 1000000 chainID 18928
Please waiting txHash 0x659dbaf0a920aceed810647d3e2f113b508e8748dd82d2b0dae067f952214449
Transaction Success block Number 4501014 block txs 3 blockhash 0x177e1c2af3c6dc1eecc6139c1b438fde86cb5c30f015d611d0191af7e96230de
Staked 1000000000000000000 wei = 1 abey Locked 0 wei = 0 abey Unlocked 0 wei = 0 abey
Your wallet balance is 1.7779448190968621564e+07 'abey current Total Stake 700392
--keystore flag show load private key in UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx file.
--rpcaddr--rpcport flag show connect node ip + port,this node should you run validator node, because of it will use your local bft pk to election.
--fee fee(0-10000) set to 5000, smaller the value, lower benefit to the delegate, higher the value, higher benefit, the rate = fee / 10000.
updatefee Sub command append represent only update validator fee(0-10000), which will influence delegator benefit.
Output Log
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--7c357530174275dd30e46319b89f71186256e4f7':
Connect url http://39.100.84.72:8545 current number 4503733 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Fee 6000
TX data nonce 25 transfer value 0 gasLimit 821528 gasPrice 1000000 chainID 18928
Please waiting txHash 0x9ba1a83f8e4a074d311ef24993cc6a3baf82936c6b73f76b77eac95204bfd772
Transaction Success block Number 4503743 block txs 5 blockhash 0xc3a188dd5da8b47efd239cd0f47fb81ee576242c5c819830cb89fee397fe06fc
--keystore flag show load private key in UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx file.
--rpcaddr--rpcport flag show connect node ip + port,this node should you run validator node, because of it will use your local bft pk to election.
queryreward print valid balance and lock balance, and every snail block your reward.
Output Log
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.xxx:8545 current number 4468689 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet valid balance is 11120.337165556650564 'abey lock balance is 100000 'abey
queryRewardInfo [map[Address:0xa4ab123ab418197ab0b5e3c49269f5d530ef87f0 Amount:2.8086168529799127e+18]]
--keystore flag show load private key in UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx file.
--rpcaddr--rpcport flag show connect node ip + port,this node should you run validator node, because of it will use your local bft pk to election.
--address to address that you want send.
--value want transfer count abey.
send Sub command append represent send normal transaction not contract,value is transfer value.
Output Log
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx':
Connect url http://39.100.84.72:8545 current number 4502701 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet balance is 1.7779429190966933964e+07 'abey current Total Stake 700411
TX data nonce 23 transfer value 10000000000000000000 gasLimit 21000 gasPrice 1000000 chainID 18928
Please waiting txHash 0x09b401884282f32f083d75ad537d1b461dc451c77a25e44f2d1fd859410561d0
Transaction Success block Number 4502702 block txs 5 blockhash 0xc3a188dd5da8b47efd239cd0f47fb81ee576242c5c819830cb89fee397fe06fc
Stake/withdraw option is based a system contract, everyone can call the contract functions to do these actions. And the node provide some RPC APIs to request the stake and reward information. We also provide a to stake easily.
The RPC APIs definitions are
abeychain Staking CLI is a tool, which can call deposit contract participate in POS. See page for more information.
The process of abeychain Staking-ClI is divided into three parts. First, on the premise of ensuring the balance of the account, Launch a transaction, only if the amount of deposit(value) is greater than 2W abey can participate in the election of the committee. If you ready to withdraw from the committee's POS consensus next epoch, Launch a transaction in the current epoch. After waiting for 15 days, we need to actively launch transaction. The extracted abey will be immediately transferred to the specified account.
Since needs to be greater than 2W which can invoked successfully, can be used if the impawn amount is less than 2W.