Feed for tag: pull-request
PR for BIP 117: Tail call semantics

Bitcoin Core PR #12132 was opened on 2018-01-09.

Implements BIP 117 as policy rules for transaction relay, causing transactions which violate the new tail-call semantics to be treated as non-standard. This is not the soft-fork activation logic needed to use tail-call scripts in production.

Tail-call semantics is a sort of user-programmable P2SH which combines well with BIP 116’s MERKLEBRANCHVERIFY to allows for a script to commit to a practically unbounded number of code pathways, and then reveal the actual code pathway used at spend time, achieving a form of generalized MAST.

As of the time of this writing these PRs are still open and have not yet been merged.

PR for BIP 98/116 Implementation: MERKLEBRANCHVERIFY

Bitcoin Core PR #12131 was opened on 2018-01-09.

Implements BIPs 98 and 116 as policy rules for transaction relay, causing transactions which use NOP4 for things other than Merkle branch verification to be treated as non-standard. This is not the soft-fork activation logic needed to use MERKLEBRANCHVERIFY in production.

MERKLEBRANCHVERIFY is a soft-fork upgradeable opcode that allows script writers to commit to a set of data elements and have one or more of these elements be provided at redemption without having to reveal the entire set. As these data elements can be used to encode policy, such as public keys or validation subscripts, the MERKLEBRANCHVERIFY opcode can be used to overcome size limitation of existing bitcoin script, and combines with tail-call semantics to provide a minimal implementation of the Merkelized Abstract Syntax Tree concept.

Eclair Adds Api Method to Check if Payment Request Has Been Paid
The eclair project, one of the popular Lightning Network clients, merged GitHub PR #312 adding a feature to check if a payment request has actually been paid. The new feature adds two methods: allpayments and payments. Both methods may be used through the JSON RPC API. By querying the node for a paymentHash, if the payment is found, then it has been received and if it is not found, then the payment has not been received.