No discrepancy, and all of these questions are accounted for in the protocol. Only the first bot to confirm gets the fee. Subsequent confirmations are ignored.
You are viewing a single comment's thread from:
No discrepancy, and all of these questions are accounted for in the protocol. Only the first bot to confirm gets the fee. Subsequent confirmations are ignored.
But the subsequent bots will have a different database than the one that made the first confirmation. They are awarding themselves 1 pocket fee that the first bot won't have in its database. How do they unwind that and return to a consensus database?
They're not awarding themself a fee when they submit the confirmation, they're awarding themself a fee when they read the confirmation in the blockchain. Only one of the confirmation messages can be valid. If the other bot beat them to it, then so be it. It's all in the protocol: https://steemit.com/pocket/@biophil/pocket-protocol
I don't really see that in the protocol. Perhaps it's in your code for the confirmation bot? In that case, it's not a standard, it's a specific implementation.
The fact that you can have multiple bots confirming the same transaction means that there is at least some disconnect between the state of the blockchain and the state of any particular confirmation bot's copy of the database. Assuming this disconnect is righted at some point, my question is how is this done? Are the confirmation bots required (can't see this in your protocol standard) to continually compare their database states with the actual state of the blockchain? If so, this makes sense, of course, and answers my question. The thing is, I can't see this anywhere in your protocol.
Yes, sort of. The blockchain is just a list of messages; it's not really useful to think of it having a "state." Notice that the protocol makes no mention of posting confirmations, only about validating confirmations. The pocket database is a function only of the Steem blockchain, which I believe is clear from the protocol. As such, the bot's database cannot be updated to reflect the fee until the confirmation message is discovered in a Steem block. Once it is discovered, if it is the first confirmation for the associated transaction, its owner is credited the fee. Then, any subsequent confirmation for the same transaction is invalid, because the fee has already been awarded.
A bot that posts confirmations is always running on top of a program that parses the blockchain to determine database state.