Earn Bitcoin by helping others

On BitQ&A you can get your questions answered by setting up a bounty or you can get paid by answering the community's questions.

How to broadcast a transaction to the Bitcoin Peer-to-peer network?

Let’s say a developer wants to broadcast transactions from their app directly to the P2P network (not using RPC calls). How would this be done? I assume a TCP/IP connection needs to be established to one of the active nodes. What follows after that? Which messages need to be exchanged (examples would be very welcome)? Can connection be closed after the broadcast or should the app maintain its connection?

Bonus question: How to discover other nodes and broadcast the transaction to multiple peers in parallel?

Is there any curated list of the IP addresses of the nodes that belong to major miners?

EDIT: It is true that Merchant API will be the way to go when available (it is not at the moment) and that using APIs such as Matter Cloud or What’s on chain is the easiest way to do it right now. But this question is more about understanding how Bitcoin’s server network works. It is an interesting piece of technology. It might also be useful for someone - API providers need to deliver transactions to miners at some point after all.

With that said; this question remains open and bounty still waiting for the right response.

Submit an answer See answers Share on Twitter Share on Facebook

How do Bitcoin payment channels work?

I would like to know how payment channel mechanic works in practice. What do the involved parties need to do, which information they exchange and how is the security ensured.

Bonus question: What different types of payment channels exist?

Only answers that actually explain channels will qualify for the bounty. While linking to 3rd party sources is encouraged and desired, answers that solely do that won’t count.

Submit an answer See answers Share on Twitter Share on Facebook

How to decode merkle/transaction proof that Bitcoin SV software provides?

One can ask Bitcoin SV not to provide a proof that a given transaction was included in a block. E.g.:

➜ bitcoin-cli gettxoutproof '["ea32120687851afe3418ab3642af94a4c69684e4b87f8a529807489e09d74ec5"]'
00008020044b32cb5a9d9c5a4d8df9b7d3db277897cd3326900ffb0200000000000000009c34e7a224a4aab8df6a82bf29710a343e000ec5494348ff1a4cf028e55ec81035a1f85dbc10071870a3284fea2400000f98e8f40fdb92f5359abf62b6a56dc03adf7da95390635c2e5e4fafbbee3f753dc54ed7099e480798528a7fb8e48496c6a494af4236ab1834fe1a8587061232ea86f9873bc1bbb24ff46e666c5370ac4b51ca3f5a0ffd03e0713c7be7612e9f610f245966d85fa863a32038e349aaf1b63ccde8b89b395aa2494fa0540d11cf183ef019baee80e4f38fcf2fe3bc23619e3d6edec65dfd2ab452f186e922492ffb668dbc25e8be0c6050247399209dfdda4934cca52f02c399d0fd6dc97c23b4615d4e9ffb22c3de0b35e8dcecb3aa23007defa4ec8e105af05dc87108ded9dccc3b80e338ba14f4390cc5c775c7fba36590bd460f3601e64b8ab55cae0a71f1224f06f0b18a11596a37a49fab86c2a7764b92f114aacad9853b8bea7f23283076cefc60d6f7f600e8d1e32342e8169e49523917c6b9b8ad7931edff1f876ae7c0a149ee3ea75ba806c441f772cbd7fb326f4b0f13b891a364a7399805749bc38016016d6a64aefe4bc7fe48f4ca8bd6f766edb0fdb183d9ba0df7f58dd280692da7dd94048aab0b5b0ebfc83066e85cc8d2cabb133739b872fb4312db5fad41e6e7d55fb7d9addfd810a561ed49634225cd88d2a04638fdc8efaf0d6044e78bdf09455aab9b4d25a5c60cac2376237b064b10b88081f52d241fff4a2d35b464f504ffdf0000

Proof can be verified using the verifytxoutproof RPC command, but let’s say I would like to verify the proof in a custom application that does not have access to a Bitcoin node.

How can I decode the proof HEX blob? What data is part of it and how can I get block, merkle proof and transaction information from it?

Submit an answer See answers Share on Twitter Share on Facebook

What will replace OP_CHECKLOCKTIMEVERIFY & OP_CHECKSEQUENCEVERIFY after the Genesis upgrade?

Since these two opcodes will be removed after Genesis and (from my understanding) nLockTime works in a slightly different way (prevents transaction from being included in a block vs. UTXO being locked until given time/block height), how will be possible to achieve same functionality after that?

Is it possible to build a locking/redeem script using other opcodes that achieves the same result? Or is there something else?

Submit an answer See answers Share on Twitter Share on Facebook

How are Bitcoin blocks structured?

Bitcoin blockchain is made of individual blocks. I am wondering how do these blocks actually look like. Which different data types are part of them? What is each part of the block used for, what is its meaning and what are the possible values that can those values take?

I would also like to, assuming I am looking at a block’s HEX blob, be able to decode it/determine various parts of it.

Submit an answer See answers Share on Twitter Share on Facebook

How to create a valid Bitcoin transaction?

If I want to create a Bitcoin transaction, which are the parts I should add to it? What is the meaning of each part and what are any special considerations that I should think of?

I would also like to, assuming I am looking at a transaction’s HEX blob, be able to decode it/determine various parts of it.

Submit an answer See answers Share on Twitter Share on Facebook
Made with in Slovenia.