How is merkle tree and merkle root calculated?
How to calculate a merkle tree? What is “merkle proof” and how does it fit into the SPV? How does one validate a merkle proof? And how all that affects Bitcoin?
How to calculate a merkle tree? What is “merkle proof” and how does it fit into the SPV? How does one validate a merkle proof? And how all that affects Bitcoin?
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.
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.
I would like to use multi-sig, but since the P2SH will be removed I’d like to use something that will be future proof. What are my options?
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?
Is it possible to get a current unspent transaction outputs set from a Bitcoin node? Or more generally, is it possible to get a UTXO set at an arbitrary block height?
If not possible through a node, is there any other solution that provides that?
Is there a way to programatically post a Twetch? If yes, how should one do it?
I would like to run Bitcoin SV software on MacOS, but I noticed that there are no binaries available. How to compile it on MacOS? Are there any alternatives that do not require compilation from scratch?
I want to display a BSV address, set up and display a funding goal with a progress bar.
As soon as a transaction happen the balance should be live updated and the progress bar should indicate the progress. I have no clue how to set up this. Who can give me a simple code for this?
Thanks.
An answer to a previous question and the whitepaper both agree that blocks don’t store full transactions, but rather, transaction hashes.
So then, what if I add data in OP_RETURN, say, the text “Hello, world!” Isn’t that a transaction output, or at least contained in an output, and therefore part of a transaction?
If not, or if so and only transaction hashes, not transactions themselves persist, then how does the OP_RETURN data stay on the blockchain?