What precisely does non-robust imply on this context?
Non-robust means “not assured to work, significantly within the presence of adversaries or when quantity is absolutely excessive so we miss issues.” Additionally, “bundle relay” in quotes refers to the truth that there is not a bundle relay protocolsimply an opportunistic piece of logic that may see when an orphanage transaction occurs to be CPFPing a transaction that failed for being low feerate.
Maybe a great analogy is in case you’re a restaurant prepare dinner that does not have a devoted server. You may opportunistically carry meals to tables whenever you end cooking them, which is usually advantageous, however you may fall behind throughout rush hour. The ticket system additionally would not rate-limit: when you’ll be able to’t maintain all of the tickets, random ones fall to the bottom and also you neglect these orders. One annoying buyer can damage others’ eating expertise by ordering 100 eating regimen cokes.
We will rent one other particular person to serve meals, which will definitely make the restaurant extra environment friendly (e.g. BIP 331, nonetheless WIP) however would not remedy all the pieces. From 30.0, we’ll have a technique that rate-limits prospects to make sure we do not neglect anyone’s order except they ship large volumes (see “p2p: enhance TxOrphanage denial of service bounds” https://github.com/bitcoin/bitcoin/pull/31829).
Are there conditions the place my mother or father transaction may nonetheless fail to verify?
A very powerful restriction in 28.0 is that cooks can solely serve quite simple issues (1p1c packages). Nothing past 1p1c works. If the kid has one other unconfirmed mother or father, even when it is already in mempools, the opportunistic logic would not work. This has modified as properly (“bundle validation: calm down the package-not-child-with-unconfirmed-parents rule” https://github.com/bitcoin/bitcoin/pull/31385).
Bitcoin Core 28.0 will robotically type a 1p1c bundle after I broadcast transactions through sendrawtransaction
That is appropriate: as soon as you’ve got submitted the transactions to your mempool, nodes will do all the pieces robotically. If it is a 0-fee mother or father + little one bundle, sendrawtransaction
would possibly complain in regards to the charge, so that you would possibly wish to use the submitpackage
RPC (the multi-transaction equal of sendrawtransaction
with a really related API). The RPC accepts single transactions as properly, so it is perhaps most handy to make use of on a regular basis.