Tuesday, October 1, 2024

p2p – Broadcast a sound block to community, with no native full node

What message may he ship to the node to be assured that his legitimate block might be broadcast to the community and appended to the chain?

You’ll be able to by no means be assured. The node you connect with could also be malicious, malfunctioning, or be badly linked itself. However you’ll be able to actually enhance the chances of fine propagation by sending your buddy’s block to as many nodes as doable.

What ought to the format/encoding be?

What communication protocol(s) ought to he use?

The Bitcoin P2P protocol has roughly three mechanisms for saying new blocks to the community:

  • The previous inv / getdata / block mechanism: you’d first ship an inv message, containing an stock merchandise of sort MSG_BLOCK (2), and the block hash. The peer will then presumably request the precise block knowledge (if they do not have it already) utilizing a getdata message containing an analogous stock merchandise with sort MSG_BLOCK or MSG_WITNESS_BLOCK (relying on whether or not they need witness knowledge). You’ll then reply by sending a block message containing the block header plus the transaction vector, in serialized format (the identical format that transaction hashes are computed over). If the sort in getdata was MSG_WITNESS_BLOCK, you’re anticipated to incorporate witnesses within the transactions, utilizing the BIP144 encoding. If the peer would not have the father or mother of your block but, this will set off fetches for ancestors, utilizing getdata or getheaders (which you will be anticipated to reply to with a headers message).
  • The BIP130 mechanism: when negotiated utilizing the sendheaders message at connection time, blocks could be introduced to friends utilizing a headers message as a substitute of inv. This lets the peer ask for lacking father or mother headers earlier than truly getting the total block from you. The getdata and knowledge steps of the earlier strategy stay unchanged in that case.
  • The BIP152 mechanism (compact blocks). The main points of the particular protocol are too intricate to elucidate in a paragraph right here, however the tough thought is to solely hand (brief) identifiers for every transaction within the block to the peer, who will then reconstruct the block on their very own, and presumably ask for lacking transactions.

In sure circumstances, Bitcoin Core will even settle for unsolicited blocks, particularly simply block messages despatched to it with out preceeding getdata. That is the best strategy, nevertheless it’s not assured to work.

Would the total node want any particular working system configuration, or extra software program, to facilitate this?

All (sincere) full nodes can validate and relay blocks to their friends. Clearly ones with extra processing energy, or better-connected networking, can achieve this quicker.

By the way, as an instance that my buddy can be notably grateful for solutions inside ~10 minutes.

Haha, sorry, too late!

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles