POCKET Day 8: What if the confirmation comes from a new confirmation bot?

in pocket •  7 years ago 


Total supply update: 1,099,001,099 POCKET tokens have been issued, with 5 days to go.

How to decide whether to trust confirmation bots

You may have noticed that there's another confirmation bot in town: @tech-pocket. I am not running this bot; it was deployed by a community member. Sometimes it's the only bot that confirms a transaction, sometimes it doesn't confirm a transaction, and sometimes you'll see both @pocket-a and @tech-pocket confirm a transaction. Who's right?

I've programmed @pocket-a to upvote confirmations that it agrees with. Technically, @pocket-a will upvote the confirmation that gets the fee from each transaction (except its own). This is true if the confirmation bot is called @tech-pocket or if it's called @imadirtyliar or anything else. If the content of the confirmation is right, it'll get an upvote from @pocket-a. If you see a confirmation that doesn't get an upvote from @pocket-a or another known bot, be wary. There could be something funny afoot.

If you see two confirmations on a transaction, it could be that both bots were racing and submitted at the same time; when this is the case, you can always compare the two confirmations to see if they're different. If the details are the same, then probably everything is fine. If you find discrepancies, then one of the bots has a problem with its database.

For more information

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations on the success of your Pockets project, @biophil.

I have a couple of questions, please:

  • Is it possible to send Pockets to a user that has not claimed her Pockets?
  • Is there a way to know who has claimed his Pockets ?
  1. Yes.
  2. No, not currently, not without running the bot software yourself. But you could always send 1 to an account to check their balance; if they have a million, then they probably have claimed.

Thank you @biophil for the clarification.

I have tried sending a tip to a fellow steemian that did not claim his pockets. It was a good opportunity to introduce him to the project. Please check it here.

this is a very important topic you just talked about here.
many users may start faking confirmation bot.
thank you very much for this update

Fortunately we haven't had any fake bots yet - but if Pocket gets valuable in any way, you can be they'll come.

I don't know that much about python I've only studied it for a week or so. So bear with me if this is a stupid question. Is there a central database of all records? If people simply copy and past the code in Github and modify it to link to their steemit account, would it ensure that all data are synced? If I were for example, copy your code and put an initial 5M pocket to my account by modifying it, how would the system identify that as fake?

Not a stupid question; actually a really important one - and nothing really to do with Python.

There's no central database, but there is an immutable decentralized database (@pocket-a has a copy of it and @tech-pocket has another copy of it), and that database can be computed by reading the Steem blockchain with my bot code. The Steem blockchain database contains all the information you need to figure out everyone's balances of Pocket. The confirmation bots know everyone's true balance because they've read through the entire Steem blockchain looking for Pocket messages.

If you tried to run your own confirmation bot with false balances, the honest bots would just ignore you as soon as you tried to spend it, because to them, you'd be spending tokens that you don't have. They would also ignore any of your confirmation messages that mention your balance, because they'd disagree on what it is.

But there does exist the possibility that you could try to fool people into believing that you have a balance that you don't have. The bots aren't yet able to prevent attempted fraud.

Thanks man clears up alot

What happens if say 4 bots confirm a transaction and they all award themselves 1 pocket token in fees? How is that discrepancy handled in the system? I'd assume most times that bots running your code (I haven't looked at it yet) would discover that another bot has already confirmed and then abort it's own confirmation. But I've seen some transactions where both your bot and @tech-pocket have confirmed it. How are situations like that handled?

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.

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?

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.

I got my conventional confirmation fairly early in the game and I'm watching Pocket with great anticipation!

confirm upvote and follower

confirm

It seems that the excitement is slowly subsiding. It will be good if you end up with 2 billion pocket-tokens.
@biophil, what do you think about the promotion of the token after the end of the issue?

I've got some ideas in mind, but I'm not sure where they go and I'm not going to talk about them publicly until after genesis.

@tippy vote

This post has been ranked within the top 80 most undervalued posts in the second half of Sep 05. We estimate that this post is undervalued by $10.07 as compared to a scenario in which every voter had an equal say.

See the full rankings and details in The Daily Tribune: Sep 05 - Part II. You can also read about some of our methodology, data analysis and technical details in our initial post.

If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.

Hello. I want to be a confirmation bot too. :-) How can I contact you? I wrote you an email (not sure if it is valid) but got no response.

i need some more pocket, how do i make request and then execute transaction ?

Do you mean you want to buy more pocket? I believe there are still people willing to sell. Check out https://steemit.com/created/pocket

Hello can you help me? It appears I am unable to resteem the post to claim my pocket? Is this an error or am I doing something wrong.

confirm