2476
TestNet Discussion Archive / Re: TestNet - BiblePay-Evolution & GSCs (Generic Smart Contracts)
« on: March 28, 2019, 07:45:16 AM »Interesting, this appears to be the anti-botnet feature you implemented, Rob.
Can you kindly explain what is happening? It appears that I staked BBP to mine a block?
So in this example, I staked 30,953 BBP to mine a 10,300 BBP block?
{
"account": "",
"address": "ybEzAPVjwGqqDVKHsJZUoDG82jpiGPcKMg",
"category": "immature",
"amount": 10299.50936000,
"vout": 0,
"confirmations": 1,
"instantlock": false,
"generated": true,
"blockhash": "0dbfcd1587816e0516b8928ca53ca022ce95261be90c3b8a6f65bc3908a9cdf9",
"blockindex": 0,
"blocktime": 1553749516,
"txid": "e69ed826877f71811361a12aef4702f9b3a2ad915caf8caef7c62e9779ffe5d3",
"walletconflicts": [
],
"time": 1553749516,
"timereceived": 1553749532
},
{
"account": "CHRISTIAN-PUBLIC-KEY",
"address": "yMjm7qwu2pQ3xRwtxu6qcGrdzdtCTPgcU4",
"category": "receive",
"amount": 30953.52702350,
"label": "CHRISTIAN-PUBLIC-KEY",
"vout": 0,
"confirmations": 1,
"instantlock": false,
"Anti-BotNet-Transaction": true,
"blockhash": "0dbfcd1587816e0516b8928ca53ca022ce95261be90c3b8a6f65bc3908a9cdf9",
"blockindex": 2,
"blocktime": 1553749516,
"txid": "9a5ce7d79cf10d36c232e73fe480b26dc2b69132b50955519eb13ea92fb90679",
"walletconflicts": [
],
"time": 1553749516,
"timereceived": 1553749532
},
{
"account": "",
"address": "yMjm7qwu2pQ3xRwtxu6qcGrdzdtCTPgcU4",
"category": "send",
"amount": -30953.52702350,
"label": "CHRISTIAN-PUBLIC-KEY",
"vout": 0,
"fee": -0.00500000,
"confirmations": 1,
"instantlock": false,
"Anti-BotNet-Transaction": true,
"blockhash": "0dbfcd1587816e0516b8928ca53ca022ce95261be90c3b8a6f65bc3908a9cdf9",
"blockindex": 2,
"blocktime": 1553749516,
"txid": "9a5ce7d79cf10d36c232e73fe480b26dc2b69132b50955519eb13ea92fb90679",
"walletconflicts": [
],
"time": 1553749516,
"timereceived": 1553749532,
"abandoned": false
}
]
Yes sir exactly, let me try to explain and please let me know if I left anything out.
So now we have ABN mining enabled, and each block requires (about 5005 ABN weight according to getmininginfo). So no block is accepted in testnet except those over 60 minutes old or those that have the weight. You can see how much weight yours had by doing : getblock 3109. It shows: abn-weight : 22500.42. Thats because the coin amount spent * the age = 22500.42.
Now moving on to the actual transaction, our wallet create an "anti-botnet-transaction" by finding the stake-age, creating the transaction and placing it somewhere in the block (the reason we moved to dynamic block transaction positions, is our wallet now supports chainlocks, and ChainLock might put a transaction in vout[1], so BiblePay made it dynamic). To find out where it is we have a field called abnlocator, you can find the value by doing a 'getrawtransaction txidvout[0] 1' (for the coinbase transaction) and looking at that transactions output fields, for ablocator, and then get the value and it points to "where" your signed stake is.
As far as the monetary value, the stake was for 30953, but note - all abn transactions are sent to self, so you actually received it all back (IE you spent 30953, received 30953 + the block reward). (You also keep the tx-fee because the staker is the solver).
We have very high security on this feature also, as evo doesnt ever allow double spends or malleability, we dont allow stakes sourced from stakes, stakes make people lose coin age, we verify the signature, and also, we verify the solver is the one who created it, so in my experience I feel this is a solid feature.
I also love how it will use up the coin-age for a person who has a couple hundred PCs! That gives more distinct users to biblepay.
We should also thank MIP and give him half of the credit, because although we spoke about this back when we were designing POL, I forgot about it until he reminded me recently.