What precisely does non-robust imply on this context?
Non-robust means “not assured to work, notably within the presence of adversaries or when quantity is basically excessive so we miss issues.” Additionally, “package deal relay” in quotes refers to the truth that there is not a package deal relay protocol, simply 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 an excellent analogy is for those who’re a restaurant prepare dinner that does not have a devoted server. You possibly can opportunistically convey meals to tables whenever you end cooking them, which is commonly effective, however you will fall behind throughout rush hour. The ticket system additionally does not rate-limit: when you possibly can’t maintain all of the tickets, random ones fall to the bottom and also you overlook these orders. One annoying buyer can wreck others’ eating expertise by ordering 100 weight-reduction plan 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 does not clear up all the pieces. From 30.0, we’ll have a method that rate-limits prospects to make sure we do not overlook anyone’s order except they ship enormous volumes (see “p2p: enhance TxOrphanage denial of service bounds” https://github.com/bitcoin/bitcoin/pull/31829).
Are there conditions the place my father or mother transaction might nonetheless fail to substantiate?
Crucial 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 father or mother, even when it is already in mempools, the opportunistic logic does not work. This has modified as effectively (“package deal validation: calm down the package-not-child-with-unconfirmed-parents rule” https://github.com/bitcoin/bitcoin/pull/31385).
Bitcoin Core 28.0 will mechanically kind a 1p1c package deal 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 mechanically. If it is a 0-fee father or mother + little one package deal, sendrawtransaction
may complain concerning the payment, so that you may wish to use the submitpackage
RPC (the multi-transaction equal of sendrawtransaction
with a really related API). The RPC accepts single transactions as effectively, so it could be most handy to make use of on a regular basis.