Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the process of sending the transaction by the Bitcoin core. #95

Open
youngminpark2559 opened this issue Nov 23, 2017 · 4 comments

Comments

@youngminpark2559
Copy link
Contributor

youngminpark2559 commented Nov 23, 2017

At this page:
https://github.com/youngmtool/ProgrammingBlockchain/blob/master/bitcoin_transfer/spend_your_coin.md

At this code:

using (var node = Node.ConnectToLocal(network)) //Connect to the node
{
    node.VersionHandshake(); //Say hello
                             //Advertize your transaction (send just the hash)
    node.SendMessage(new InvPayload(InventoryType.MSG_TX, transaction.GetHash()));
    //Send it
    node.SendMessage(new TxPayload(transaction));
    Thread.Sleep(500); //Wait a bit
}

For me, I think the explanations about the code is lack about the role of VersionHandshake(), SendMessage(), InvPayload(), InventoryType, MSG_TX, TxPayload().

Could you give some explanations on each one?

@nopara73
Copy link
Contributor

Actually this is not the correct way to send it, but it would be kind of overkill to do it properly in the book.

You only send transaction when a node asks for it.
So you need a listener that is listening to every message nodes send to you.
If you catch an inv txid message then you check if you have the transactions and if you have it then you send the tx.

So why do we send the inv txid? It's because that's how we tell the node, "hey, we have this tx in our inventory" and if the node decides that it needs it then we give them the transaction.

@youngminpark2559
Copy link
Contributor Author

Thanks for answer.

@john-clement20
Copy link

Hello

@john-clement20
Copy link

how to put bitcoin address to generate script

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants