<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub19r53ufymeycp9wzk3yzru55y5u46e4vva2lj7nak4zrn6yhrna7qsyj32s.rss" />
  <link href="https://nostr.ae/npub19r53ufymeycp9wzk3yzru55y5u46e4vva2lj7nak4zrn6yhrna7qsyj32s" />
  <id>https://nostr.ae/npub19r53ufymeycp9wzk3yzru55y5u46e4vva2lj7nak4zrn6yhrna7qsyj32s</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsd8j875hnzefgdja7f65mt60s779pst8lhj9wdx8nxp02pudgypuszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcqkdzqt</id>
    
      <title type="html">📅 Original date posted:2020-09-18 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd8j875hnzefgdja7f65mt60s779pst8lhj9wdx8nxp02pudgypuszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcqkdzqt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswxv80tajsfkzrlkq7g2jjgkgyv6e5g2wkn5397gm638c42y8ldygkh8zvq&#39;&gt;nevent1q…8zvq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-09-18&lt;br/&gt;📝 Original message:Conceptually this is so simple and explicit it almost seems like an obvious&lt;br/&gt;primitive.&lt;br/&gt;&lt;br/&gt;Glossing over some of the design/policy decisions...&lt;br/&gt;&lt;br/&gt;I wonder what the real-world privacy implications are due to the&lt;br/&gt;dependencies now being encoded on-chain rather than requiring some effort&lt;br/&gt;to watch the mempool?&lt;br/&gt;&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Fri, Sep 18, 2020, 20:52 Jeremy via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi Bitcoin Devs,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;d like to share with you a draft proposal for a mechanism to replace CPFP and RBF for&lt;br/&gt;&amp;gt; increasing fees on transactions in the mempool that should be more robust against attacks.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; A reference implementation demonstrating these rules is available&lt;br/&gt;&amp;gt; [here](&lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/master...JeremyRubin:subsidy-tx&#34;&gt;https://github.com/bitcoin/bitcoin/compare/master...JeremyRubin:subsidy-tx&lt;/a&gt;) for those who&lt;br/&gt;&amp;gt; prefer to not read specs.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Should the mailing list formatting be bungled, it is also available as a gist [here](&lt;a href=&#34;https://gist.github.com/JeremyRubin/92a9fc4c6531817f66c2934282e71fdf&#34;&gt;https://gist.github.com/JeremyRubin/92a9fc4c6531817f66c2934282e71fdf&lt;/a&gt;).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Non-Destructive TXID Dependencies for Fee Sponsoring&lt;br/&gt;&amp;gt; ====================================================&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This BIP proposes a general purpose mechanism for expressing non-destructive (i.e., not requiring&lt;br/&gt;&amp;gt; the spending of a coin) dependencies on specific transactions being in the same block that can be&lt;br/&gt;&amp;gt; used to sponsor fees of remote transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Motivation&lt;br/&gt;&amp;gt; ==========&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The mempool has a variety of protections and guards in place to ensure that miners are economic and&lt;br/&gt;&amp;gt; to protect the network from denial of service.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The rough surface of these policies has some unintended consequences for second layer protocol&lt;br/&gt;&amp;gt; developers. Applications are either vulnerable to attacks (such as transaction pinning) or must go&lt;br/&gt;&amp;gt; through great amounts of careful protocol engineering to guard against known mempool attacks.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This is insufficient because if new attacks are found, there is limited ability to deploy fixes for&lt;br/&gt;&amp;gt; them against deployed contract instances (such as open lightning channels). What is required is a&lt;br/&gt;&amp;gt; fully abstracted primitive that requires no special structure from an underlying transaction in&lt;br/&gt;&amp;gt; order to increase fees to confirm the transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Consensus Specification&lt;br/&gt;&amp;gt; =======================&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If a transaction&amp;#39;s last output&amp;#39;s scripPubKey is of the form OP_VER followed by n*32 bytes, where&lt;br/&gt;&amp;gt; n&amp;gt;1, it is interpreted as a vector of TXIDs (Sponsor Vector). The Sponsor Vector TXIDs  must also be&lt;br/&gt;&amp;gt; in the block the transaction is validated in, with no restriction on order or on specifying a TXID&lt;br/&gt;&amp;gt; more than once. This can be accomplished simply with the following patch:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ```diff&lt;br/&gt;&amp;gt; &#43;&lt;br/&gt;&amp;gt; &#43;    // Extract all required fee dependencies&lt;br/&gt;&amp;gt; &#43;    std::unordered_set&amp;lt;uint256, SaltedTxidHasher&amp;gt; dependencies;&lt;br/&gt;&amp;gt; &#43;&lt;br/&gt;&amp;gt; &#43;    const bool dependencies_enabled = VersionBitsState(pindex-&amp;gt;pprev, chainparams.GetConsensus(), Consensus::DeploymentPos::DEPLOYMENT_TXID_DEPENDENCY, versionbitscache) == ThresholdState::ACTIVE;&lt;br/&gt;&amp;gt; &#43;    if (dependencies_enabled) {&lt;br/&gt;&amp;gt; &#43;        for (const auto&amp;amp; tx : block.vtx) {&lt;br/&gt;&amp;gt; &#43;            // dependency output is if the last output of a txn is OP_VER followed by a sequence of 32*n&lt;br/&gt;&amp;gt; &#43;            // bytes&lt;br/&gt;&amp;gt; &#43;            // vout.back() must exist because it is checked in CheckBlock&lt;br/&gt;&amp;gt; &#43;            const CScript&amp;amp; dependencies_script = tx-&amp;gt;vout.back().scriptPubKey;&lt;br/&gt;&amp;gt; &#43;            // empty scripts are valid, so be sure we have at least one byte&lt;br/&gt;&amp;gt; &#43;            if (dependencies_script.size() &amp;amp;&amp;amp; dependencies_script[0] == OP_VER) {&lt;br/&gt;&amp;gt; &#43;                const size_t size = dependencies_script.size() - 1;&lt;br/&gt;&amp;gt; &#43;                if (size % 32 == 0 &amp;amp;&amp;amp; size &amp;gt; 0) {&lt;br/&gt;&amp;gt; &#43;                    for (auto start = dependencies_script.begin() &#43;1, stop = start &#43; 32; start &amp;lt; dependencies_script.end(); start = stop, stop &#43;= 32) {&lt;br/&gt;&amp;gt; &#43;                        uint256 txid;&lt;br/&gt;&amp;gt; &#43;                        std::copy(start, stop, txid.begin());&lt;br/&gt;&amp;gt; &#43;                        dependencies.emplace(txid);&lt;br/&gt;&amp;gt; &#43;                    }&lt;br/&gt;&amp;gt; &#43;                }&lt;br/&gt;&amp;gt; &#43;                // No rules applied otherwise, open for future upgrades&lt;br/&gt;&amp;gt; &#43;            }&lt;br/&gt;&amp;gt; &#43;        }&lt;br/&gt;&amp;gt; &#43;        if (dependencies.size() &amp;gt; block.vtx.size()) {&lt;br/&gt;&amp;gt; &#43;            return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, &amp;#34;bad-dependencies-too-many-target-txid&amp;#34;);&lt;br/&gt;&amp;gt; &#43;        }&lt;br/&gt;&amp;gt; &#43;    }&lt;br/&gt;&amp;gt; &#43;&lt;br/&gt;&amp;gt;      for (unsigned int i = 0; i &amp;lt; block.vtx.size(); i&#43;&#43;)&lt;br/&gt;&amp;gt;      {&lt;br/&gt;&amp;gt;          const CTransaction &amp;amp;tx = *(block.vtx[i]);&lt;br/&gt;&amp;gt; &#43;        if (!dependencies.empty()) {&lt;br/&gt;&amp;gt; &#43;            dependencies.erase(tx.GetHash());&lt;br/&gt;&amp;gt; &#43;        }&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;          nInputs &#43;= tx.vin.size();&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; @@ -2190,6 &#43;2308,9 @@ bool CChainState::ConnectBlock(const CBlock&amp;amp; block, BlockValidationState&amp;amp; state,&lt;br/&gt;&amp;gt;          }&lt;br/&gt;&amp;gt;          UpdateCoins(tx, view, i == 0 ? undoDummy : blockundo.vtxundo.back(), pindex-&amp;gt;nHeight);&lt;br/&gt;&amp;gt;      }&lt;br/&gt;&amp;gt; &#43;    if (!dependencies.empty()) {&lt;br/&gt;&amp;gt; &#43;        return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, &amp;#34;bad-dependency-missing-target-txid&amp;#34;);&lt;br/&gt;&amp;gt; &#43;    }&lt;br/&gt;&amp;gt; ```&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ### Design Motivation&lt;br/&gt;&amp;gt; The final output of a transaction is an unambiguous location to attach metadata to a transaction&lt;br/&gt;&amp;gt; such that the data is available for transaction validation. This data could be committed to anywhere,&lt;br/&gt;&amp;gt; with added implementation complexity, or in the case of Taproot annexes, incompatibility with&lt;br/&gt;&amp;gt; non-Taproot addresses (although this is not a concern for sponsoring a transaction that does not use&lt;br/&gt;&amp;gt; Taproot).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; A bare scriptPubKey prefixed with OP_VER is defined to be invalid in any context, and is trivially&lt;br/&gt;&amp;gt; provably unspendable and therefore pruneable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If there is another convenient place to put the TXID vector, that&amp;#39;s fine too.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; As the output type is non-standard, unupgraded nodes will by default not include Transactions&lt;br/&gt;&amp;gt; containing them in the mempool, limiting risk of an upgrade via this mechanism.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Policy Specification&lt;br/&gt;&amp;gt; ====================&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The mechanism proposed above is a general specification for inter-transaction dependencies.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In this BIP, we only care to ensure a subset of behavior sufficient to replace CPFP and RBF for fee&lt;br/&gt;&amp;gt; bumping.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thus we restrict the mempool policy such that:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. No Transaction with a Sponsor Vector may have any child spends; and&lt;br/&gt;&amp;gt; 1. No Transaction with a Sponsor Vector may have any unconfirmed parents; and&lt;br/&gt;&amp;gt; 1. The Sponsor Vector must have exactly 1 entry; and&lt;br/&gt;&amp;gt; 1. The Sponsor Vector&amp;#39;s entry must be present in the mempool; and&lt;br/&gt;&amp;gt; 1. Every Transaction may have exactly 1 sponsor in the mempool; except&lt;br/&gt;&amp;gt; 1. Transactions with a Sponsor Vector may not be sponsored.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The mempool treats ancestors and descendants limits as follows:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Sponsors are counted as children transactions for descendants; but&lt;br/&gt;&amp;gt; 1. Sponsoring transactions are exempted from any limits saturated at the time of submission.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This ensures that within a given package, every child transaction may have a sponsor, but that the&lt;br/&gt;&amp;gt; mempool prefers to not accept new true children while there are parents that can be cleared.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; To prevent garbage sponsors, we also require that:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. The Sponsor&amp;#39;s feerate must be greater than the Sponsored&amp;#39;s ancestor fee rate&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We allow one Sponsor to replace another subject to normal replacement policies, they are treated as&lt;br/&gt;&amp;gt; conflicts.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ### Design Motivation&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are a few other ways to use OP_VER sponsors that are not included. For instance, one could&lt;br/&gt;&amp;gt; make child chains that are only valid if their parent is in the same block (this is incompatible&lt;br/&gt;&amp;gt; with CTV, exercise left to reader). These use cases are in a sense incidental to the motivation&lt;br/&gt;&amp;gt; of this mechanism, and add a lot of implementation complexity.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; What is wanted is a minimal mechanism that allows arbitrary unconnected third parties to attach&lt;br/&gt;&amp;gt; fees to an arbitrary transaction. The set of rules given tightly bounds how much extra work the&lt;br/&gt;&amp;gt; mempool might have to do to account for the new sponsors in the worst case, while providing a &amp;#34;it&lt;br/&gt;&amp;gt; always works&amp;#34; API for end users that is not subject to traditional issues around pinning.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Eventually, rational miners may wish to permit multiple sponsor targets, or multiple sponsoring&lt;br/&gt;&amp;gt; transactions, but they are not required for the mechanism to work. This is a benefit of the&lt;br/&gt;&amp;gt; minimality of the consensus rule, it is compatible with future policy should it be implemented.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; #### Attack Analysis of new Policy&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the worst case the new policy can lead to a 1/2 reduction in the number of children allowed&lt;br/&gt;&amp;gt; (e.g., if there are 13 children submitted, then 12 sponsors, the 25 child limit will saturate&lt;br/&gt;&amp;gt; before) and a 2x increase in the maximum children (e.g., if there are 25 children submitted, and&lt;br/&gt;&amp;gt; then each are sponsored). Importantly, even in the latter attack scenario, the DoS surface is not&lt;br/&gt;&amp;gt; great because the sponsor transactions have no children nor parents.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; #### Package Relay/Orphan Pool&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Future policy work might be able to insert sponsors into a special sponsor pool with an eviction&lt;br/&gt;&amp;gt; policy that would enable sponsors to be queried and tracked for transactions that have too low fee&lt;br/&gt;&amp;gt; to enter the mempool in the first place. This is treated as a separate concern, as any strides on&lt;br/&gt;&amp;gt; package relay generally should be able to support sponsors trivially.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Reference Implementation&lt;br/&gt;&amp;gt; ========================&lt;br/&gt;&amp;gt; A reference implementation demonstrating these rules is available&lt;br/&gt;&amp;gt; [here](&lt;a href=&#34;https://github.com/bitcoin/bitcoin/compare/master...JeremyRubin:subsidy-tx&#34;&gt;https://github.com/bitcoin/bitcoin/compare/master...JeremyRubin:subsidy-tx&lt;/a&gt;). This is a best&lt;br/&gt;&amp;gt; effort implementation, but has not been carefully audited for correctness and likely diverges from&lt;br/&gt;&amp;gt; this document in ways that should either be reflected in this document or amended in the code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Best,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Jeremy&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; @JeremyRubin &amp;lt;&lt;a href=&#34;https://twitter.com/JeremyRubin&amp;gt&#34;&gt;https://twitter.com/JeremyRubin&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; &amp;lt;&lt;a href=&#34;https://twitter.com/JeremyRubin&amp;gt&#34;&gt;https://twitter.com/JeremyRubin&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200918/c7e52557/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200918/c7e52557/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:26:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswamhjg8fka98asptpnn38ve49g74cj3ec2xes6dsmd5d0n8pq85szyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hc96elda</id>
    
      <title type="html">📅 Original date posted:2019-06-20 📝 Original message:A ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswamhjg8fka98asptpnn38ve49g74cj3ec2xes6dsmd5d0n8pq85szyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hc96elda" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9a8xkpvct6ch84pa8dkp6yvfpphjmardl8ywsjp4c400ctuqs88ql0qma4&#39;&gt;nevent1q…qma4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-20&lt;br/&gt;📝 Original message:A belated thanks (as always) for the great notes, Bryan. This is so&lt;br/&gt;valuable!&lt;br/&gt;&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Jun 7, 2019 at 11:07 AM Bryan Bishop via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The following are some notes from the coredev.tech Amsterdam 2019 meeting.&lt;br/&gt;&amp;gt; Any mistakes are my probably my own.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Here is a conversation about the code review process in Bitcoin Core:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-05-code-review/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-05-code-review/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Here is a conversation with some of the maintainers about what problems&lt;br/&gt;&amp;gt; they are seeing:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-maintainers/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-maintainers/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Wallet re-architecture discussion&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-05-wallet-architecture/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-05-wallet-architecture/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Great consensus cleanup&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-great-consensus-cleanup/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-great-consensus-cleanup/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; SIGHASH_NOINPUT, OP_CHECKSIGFROMSTACK, OP_CHECKOUTPUTSHASHVERIFY,&lt;br/&gt;&amp;gt; OP_SECURETHEBAG&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-noinput-etc/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-noinput-etc/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Taproot discussion&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-taproot/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-taproot/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Utreexo&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-utreexo/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-06-utreexo/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; assumeutxo&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-assumeutxo/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-assumeutxo/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hardware wallets and HWI&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-hardware-wallets/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-hardware-wallets/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; bip151, p2p encryption and v2 message format&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-p2p-encryption/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-p2p-encryption/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Signet for bitcoin test networks&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-signet/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-signet/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Statechains overview&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-statechains/&#34;&gt;http://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2019-06-07-statechains/&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thanks,&lt;br/&gt;&amp;gt; - Bryan&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://heybryan.org/&#34;&gt;https://heybryan.org/&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190620/611c57f3/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190620/611c57f3/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:18:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0s0g4pjn59y5nm7jl3z6uzcp2vs4vnphx9q7nethzhwalrc62zeszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcpcefnz</id>
    
      <title type="html">📅 Original date posted:2017-09-27 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0s0g4pjn59y5nm7jl3z6uzcp2vs4vnphx9q7nethzhwalrc62zeszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcpcefnz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0znvul6xwvyh7sghqrza6kutzwp6g8x20nzkhwy5d65vlrj5lwhcjz7gsa&#39;&gt;nevent1q…7gsa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-09-27&lt;br/&gt;📝 Original message:Hi Mark&lt;br/&gt;&lt;br/&gt;Thank you very much for posting the findings. I took a look through our&lt;br/&gt;repository and I think I can provide a bit of context.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll go through each one, annotating what I&amp;#39;ve found.&lt;br/&gt;&lt;br/&gt;&amp;gt; Apache License 2.0&lt;br/&gt;&lt;br/&gt;This is used by a few java files in the libsecp256k1 project. That library&lt;br/&gt;(which lives here: &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1&#34;&gt;https://github.com/bitcoin-core/secp256k1&lt;/a&gt;) is a&lt;br/&gt;sub-module created and maintained by Bitcoin Core developers. The files in&lt;br/&gt;question are bindings that allow other applications to use libsecp256k1&lt;br/&gt;from Java. Bitcoin Core makes no use of them.&lt;br/&gt;&lt;br/&gt;&amp;gt; Boost Software License 1.0&lt;br/&gt;&lt;br/&gt;This comes from tinyformat.h. Bitcoin Core indeed uses it.&lt;br/&gt;&lt;br/&gt;&amp;gt; BSD 2-clause &amp;#34;Simplified&amp;#34; License&lt;br/&gt;&lt;br/&gt;I&amp;#39;m unable to find any 2-clause BSD licensed files.&lt;br/&gt;&lt;br/&gt;&amp;gt; BSD 3-clause &amp;#34;New&amp;#34; or &amp;#34;Revised&amp;#34; License&lt;br/&gt;&lt;br/&gt;This comes from leveldb, which is database software used by Bitcoin Core.&lt;br/&gt;Because database software version inconsistencies can cause accidental&lt;br/&gt;forks (this actually happened in 2013), we include these files in our&lt;br/&gt;repository and use them rather than linking to arbitrary versions at&lt;br/&gt;runtime.&lt;br/&gt;&lt;br/&gt;There are a few non-upstream files we use in our leveldb tree to provide&lt;br/&gt;windows support. Quoting from src/leveldb/util/env_win.cc:&lt;br/&gt;  This file contains source that originates from:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;http://code.google.com/p/leveldbwin/source/browse/trunk/win32_impl_src/env_win32.h&#34;&gt;http://code.google.com/p/leveldbwin/source/browse/trunk/win32_impl_src/env_win32.h&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;http://code.google.com/p/leveldbwin/source/browse/trunk/win32_impl_src/port_win32.cc&#34;&gt;http://code.google.com/p/leveldbwin/source/browse/trunk/win32_impl_src/port_win32.cc&lt;/a&gt;&lt;br/&gt;  Those files don&amp;#39;t have any explicit license headers but the&lt;br/&gt;  project (&lt;a href=&#34;http://code.google.com/p/leveldbwin/&#34;&gt;http://code.google.com/p/leveldbwin/&lt;/a&gt;) lists the &amp;#39;New BSD License&amp;#39;&lt;br/&gt;&lt;br/&gt;&amp;gt; Creative Commons Attribution Share Alike 3.0&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t manage to find any CC-licensed files. The match probably comes&lt;br/&gt;from our gui svg icons, which contain an xml tag with a link to&lt;br/&gt;creativecommons.org. This seems to be the default behavior of inkscape,&lt;br/&gt;which was used to create those icons. Any icons that we have not created&lt;br/&gt;ourselves are listed in contrib/debian/copyright (they&amp;#39;re all expat/public&lt;br/&gt;domain).&lt;br/&gt;&lt;br/&gt;&amp;gt; Expat License&lt;br/&gt;&lt;br/&gt;See MIT.&lt;br/&gt;&lt;br/&gt;&amp;gt; GNU General Public License v2.0 or later&lt;br/&gt;&lt;br/&gt;The debian folder, which holds the files used to create debian/ubuntu&lt;br/&gt;packages is licensed gplv2&#43;. These are packaging resources only,&lt;br/&gt;unnecessary for use of the code.&lt;br/&gt;&lt;br/&gt;Additionally, some gplv2 m4 macros are used to bootstrap the code that is&lt;br/&gt;used to build the Bitcoin code. These contain the additional exception:&lt;br/&gt;&lt;br/&gt;   As a special exception, the respective Autoconf Macro&amp;#39;s copyright owner&lt;br/&gt;   gives unlimited permission to copy, distribute and modify the configure&lt;br/&gt;   scripts that are the output of Autoconf when processing the Macro. You&lt;br/&gt;   need not follow the terms of the GNU General Public License when using&lt;br/&gt;   or distributing such scripts, even though portions of the text of the&lt;br/&gt;   Macro appear in them. The GNU General Public License (GPL) does govern&lt;br/&gt;   all other use of the material that constitutes the Autoconf Macro.&lt;br/&gt;&lt;br/&gt;&amp;gt; GNU General Public License v3.0 or later&lt;br/&gt;&lt;br/&gt;The macdeploy script, useful for creating DMG files for macOS is gplv3. It&lt;br/&gt;is not necessary for any other platform, and is only used during the build&lt;br/&gt;process. Additionally, it is not the only way to create DMG files (apple&amp;#39;s&lt;br/&gt;native tools can be used as well).&lt;br/&gt;&lt;br/&gt;Additionally, config.guess and config.sub are gplv3 scripts used to build&lt;br/&gt;our buildsystem.&lt;br/&gt;&lt;br/&gt;&amp;gt; GNU Lesser General Public License v2.1 or later&lt;br/&gt;&lt;br/&gt;authproxy.py, A python script used in our test suite is licensed lgpl&lt;br/&gt;v2.1&#43;. It is only necessary for running optional tests during development.&lt;br/&gt;&lt;br/&gt;&amp;gt; License for A fast alternative to the modulo reduction&lt;br/&gt;&lt;br/&gt;This references a comment cuckoocache.h. No code from the site is used. The&lt;br/&gt;link to the site was added after the code, as the site provides a helpful&lt;br/&gt;explanation for the technique used.&lt;br/&gt;&lt;br/&gt;&amp;gt; License for atomic by Timm Kosse&lt;br/&gt;&lt;br/&gt;Another m4 file. As explained with the others above, this is a macro which&lt;br/&gt;builds code which builds code. It is used in the build process only.&lt;br/&gt;&lt;br/&gt;&amp;gt; MIT License&lt;br/&gt;&lt;br/&gt;The primary and default license for all contributions.&lt;br/&gt;&lt;br/&gt;&amp;gt; Public Domain&lt;br/&gt;&lt;br/&gt;&amp;gt; University of Illinois/NCSA Open Source License&lt;br/&gt;&lt;br/&gt;clang-format-diff.py, a python script optionally used by developers to&lt;br/&gt;clean up code changes.&lt;br/&gt;&lt;br/&gt;tl;dr: Best I can tell, all source files that comprise Bitcoin Core&lt;br/&gt;binaries are licensed (excluding the public domain ones) as MIT, BSD, or&lt;br/&gt;Boost.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s also worth repeating Omar&amp;#39;s point that many of the files in the&lt;br/&gt;Bitcoin Core repository are used for optional programs/libraries. None of&lt;br/&gt;the artwork, for example, is needed for the primary bitcoin daemon.&lt;br/&gt;&lt;br/&gt;Hope that helps!&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cory&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170927/af791133/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170927/af791133/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:06:14&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs97ux2yrc9ux8s7xmuyl6kjg4hu2u6nkvqzlaz70s744n6rxa7argzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcsl8xvh</id>
    
      <title type="html">📅 Original date posted:2016-02-01 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs97ux2yrc9ux8s7xmuyl6kjg4hu2u6nkvqzlaz70s744n6rxa7argzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcsl8xvh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdr78p9j6kpag7xrcc34autl6apahnx7ga96gdp0w38nwtaygjjwct4ym7k&#39;&gt;nevent1q…ym7k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-02-01&lt;br/&gt;📝 Original message:Thanks for getting this started, Luke.&lt;br/&gt;&lt;br/&gt;Noticeably absent here is the &amp;#34;default_witness_commitment&amp;#34; key, as&lt;br/&gt;added by the current reference implementation[0].&lt;br/&gt;&lt;br/&gt;I assume (please correct me if I&amp;#39;m wrong) that this has been omitted&lt;br/&gt;for the sake of having clients create the commitment themselves as&lt;br/&gt;opposed to having it provided to them.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that the two approaches (providing the default&lt;br/&gt;commitment for the complete tx set as well as the ability to create it&lt;br/&gt;from chosen transactions) are at odds with each-other, rather it&lt;br/&gt;merely allows for a simpler approach for those who are taking tx&amp;#39;s&lt;br/&gt;as-is from bitcoind. It&amp;#39;s obviously important for the clients to be&lt;br/&gt;able to chose tx&amp;#39;s and create commitments as they desire, but it&amp;#39;s&lt;br/&gt;equally important to allow for simpler use-cases.&lt;br/&gt;&lt;br/&gt;The issue in particular here is that a non-trivial burden is thrust&lt;br/&gt;upon mining software, increasing the odds of bugs in the process. I&amp;#39;d&lt;br/&gt;like to point out that this is not a theoretical argument. I&amp;#39;ve&lt;br/&gt;already fixed a handful of bugs relating to serialization or&lt;br/&gt;commitment creation in the mining/pool software that I&amp;#39;ve worked on&lt;br/&gt;for segwit [1][2][3][4]. Asking them to handle more serialization and&lt;br/&gt;calculation of complex structures needlessly increases the complexity&lt;br/&gt;for zero benefit in the case where the tx&amp;#39;s are to be used as-is.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll PR this change to the BIP, as I can&amp;#39;t really come up with an&lt;br/&gt;argument against. At worst, it can simply be ignored.&lt;br/&gt;&lt;br/&gt;[0]: &lt;a href=&#34;https://github.com/sipa/bitcoin/blob/segwit/src/rpcmining.cpp#L590&#34;&gt;https://github.com/sipa/bitcoin/blob/segwit/src/rpcmining.cpp#L590&lt;/a&gt;&lt;br/&gt;[1]: &lt;a href=&#34;https://github.com/bitcoin/libblkmaker/commit/22f6e42844aa14ed0037ebf12a734f07e63533d7&#34;&gt;https://github.com/bitcoin/libblkmaker/commit/22f6e42844aa14ed0037ebf12a734f07e63533d7&lt;/a&gt;&lt;br/&gt;[2]: &lt;a href=&#34;https://github.com/bitcoin/libblkmaker/commit/15e2c35bf69c997488e37147cf062dfa925b4912&#34;&gt;https://github.com/bitcoin/libblkmaker/commit/15e2c35bf69c997488e37147cf062dfa925b4912&lt;/a&gt;&lt;br/&gt;[3]: &lt;a href=&#34;https://github.com/bitcoin/libblkmaker/commit/9a5799891e0f3590779b8e5a993a7b306088e2fa&#34;&gt;https://github.com/bitcoin/libblkmaker/commit/9a5799891e0f3590779b8e5a993a7b306088e2fa&lt;/a&gt;&lt;br/&gt;[4]: &lt;a href=&#34;https://github.com/theuni/ckpool/commit/7d84b1d76b39591cc1c1ef495ebec513cb19a08e&#34;&gt;https://github.com/theuni/ckpool/commit/7d84b1d76b39591cc1c1ef495ebec513cb19a08e&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Sat, Jan 30, 2016 at 1:50 PM, Luke Dashjr via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; I&amp;#39;ve completed an initial draft of a BIP for updating getblocktemplate for&lt;br/&gt;&amp;gt; segregated witness here:&lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://github.com/luke-jr/bips/blob/segwit_gbt/bip-segwit-gbt.mediawiki&#34;&gt;https://github.com/luke-jr/bips/blob/segwit_gbt/bip-segwit-gbt.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Please review and comment (especially with regard to the changes in the&lt;br/&gt;&amp;gt; sigoplimits handling).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (Note: libblkmaker&amp;#39;s reference implementation is at this time incompatible&lt;br/&gt;&amp;gt; with the &amp;#34;last output&amp;#34; rule in this BIP.)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thanks,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Luke&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;
    </content>
    <updated>2023-06-07T19:48:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2gtffdxldsefmm6f004ggck66j5x7gsnx6g4777m5uw4m6ywwdagzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hc3rr0mu</id>
    
      <title type="html">📅 Original date posted:2015-08-18 📝 Original message:See ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2gtffdxldsefmm6f004ggck66j5x7gsnx6g4777m5uw4m6ywwdagzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hc3rr0mu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrcpue45t2wek0jzy99s8gj5029lckqqfnp8tv6qemz6wsqe0gccs8sc2c5&#39;&gt;nevent1q…c2c5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-18&lt;br/&gt;📝 Original message:See responses inline.&lt;br/&gt;&lt;br/&gt;On Tue, Aug 18, 2015 at 6:31 AM, Tamas Blummer &amp;lt;tamas at bitsofproof.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; Thanks a lot Cory for following through the test case and producing a patch.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I confirm that libconsensus is now running stable within the Bits of Proof&lt;br/&gt;&amp;gt; stack,&lt;br/&gt;&amp;gt; in-line with test cases we use to verify the java implementation of the&lt;br/&gt;&amp;gt; script engine,&lt;br/&gt;&amp;gt; that are BTW borrowed from Bitcoin Core.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The performance of libconsensus is surprisingly close to the java one.&lt;br/&gt;&amp;gt; Validating a 2-of-2 a multi-sig  transaction runs at 1021 ops/sec with java&lt;br/&gt;&amp;gt; and 1135 ops/sec&lt;br/&gt;&amp;gt; in libconsensus. This is on a 2.2GH i7 laptop (4 hyper threading cores used&lt;br/&gt;&amp;gt; by 8 threads).&lt;br/&gt;&amp;gt; Another nice demonstration why one should not trade in advances&lt;br/&gt;&amp;gt; of languages for the last decades for a marginal gain of performance with&lt;br/&gt;&amp;gt; C/C&#43;&#43;,&lt;br/&gt;&amp;gt; I assume thereby that Bouncy Castle’ EC lib s not superior to OpenSSL&amp;#39;s.&lt;br/&gt;&lt;br/&gt;A few points there. First, Core is switching to libsecp256k1 for&lt;br/&gt;several reasons, and one of them is speed. I seem to recall it being&lt;br/&gt;up to 8x faster than OpenSSL.&lt;br/&gt;&lt;br/&gt;Also, it can depend heavily on compiler switches and optimization&lt;br/&gt;levels. For example, In playing with my test-case for hitting the&lt;br/&gt;OpenSSL race issue, I managed to get a ~100% speedup by simply using&lt;br/&gt;-O3 and lto.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I disagree that the problem was rare in the real-world, it should affect any&lt;br/&gt;&amp;gt; modern&lt;br/&gt;&amp;gt; implementation that validates transactions parallel in multiple threads.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Well I&amp;#39;d say you&amp;#39;re a bit biased in this case ;)&lt;br/&gt;&lt;br/&gt;It&amp;#39;s only those using ancient (0.98 or 1.00) versions of OpenSSL who&lt;br/&gt;are affected, or those with OPENSSL_BN_ASM_MONT support disabled or&lt;br/&gt;missing. Note that official releases of libbitcoinconsensus are&lt;br/&gt;compiled against a much newer version and shouldn&amp;#39;t have any issues.&lt;br/&gt;&lt;br/&gt;The earlier patches for locking callbacks should be unnecessary.&lt;br/&gt;&lt;br/&gt;&amp;gt; Aborting also does not make the problem less severe in my opinion.&lt;br/&gt;&lt;br/&gt;Well it&amp;#39;s not a good thing by any means, but it&amp;#39;s certainly better&lt;br/&gt;than incorrect results! In any undefined/error condition for the&lt;br/&gt;consensus library, aborting is the right thing to do. If we can&amp;#39;t&lt;br/&gt;explain how we&amp;#39;ve reached a certain &amp;#34;unreachable&amp;#34; condition as is the&lt;br/&gt;case here, the only reasonable recourse is to shut down. Otherwise we&lt;br/&gt;risk network forks, DOS, etc.&lt;br/&gt;&lt;br/&gt;&amp;gt; Therefore hope the pull will be included into Core with next release.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It will likely be unnecessary for the next release, but I do think&lt;br/&gt;it&amp;#39;s worth backporting to the 0.10 and 0.9 series.&lt;br/&gt;&lt;br/&gt;&amp;gt; I can’t assign a timeline to “near future&amp;#34; secp256k1 integration. Can you?&lt;br/&gt;&lt;br/&gt;I believe the libsecp256k1 guys are generally happy with the lib these&lt;br/&gt;days, but I&amp;#39;ll avoid guessing at a timeline. We can discuss that on&lt;br/&gt;the PR for this fix, which I&amp;#39;ll do today.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cory
    </content>
    <updated>2023-06-07T17:47:00&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs073t0uyh24cxdyudvrx5m8n24exgzwp5v4mnnmarvyjf2lwrungszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hctgfkvz</id>
    
      <title type="html">📅 Original date posted:2015-08-18 📝 Original message:Back ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs073t0uyh24cxdyudvrx5m8n24exgzwp5v4mnnmarvyjf2lwrungszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hctgfkvz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd63dq6gtyltemwdsscpt66pzj2024aq6pyq4pn0fpr9vzp5est5sh9x04j&#39;&gt;nevent1q…x04j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-18&lt;br/&gt;📝 Original message:Back to the list (from github) in case anyone finds this via Google.&lt;br/&gt;&lt;br/&gt;The patch that I posted here a few days ago did not fix the issue for Tamas.&lt;br/&gt;&lt;br/&gt;I spent some time tracking down this edge-case because&lt;br/&gt;libbitcoinconsensus needs to be as bullet-proof as possible. Thanks to&lt;br/&gt;Tamas for creating a bare-bones test case after some discussion.&lt;br/&gt;&lt;br/&gt;I finally managed to reproduce the issue on OSX. It&amp;#39;s subtle and&lt;br/&gt;likely rare in the real-world, though obviously not impossible given&lt;br/&gt;the report here. For posterity, here&amp;#39;s a rundown (braindump) of the&lt;br/&gt;issue.&lt;br/&gt;&lt;br/&gt;When calling EC_KEY_new_by_curve_name(), openssl internally checks to&lt;br/&gt;see how to setup the curve&amp;#39;s EC_METHOD (simple, montgomery, or nist).&lt;br/&gt;&lt;br/&gt;Unfortunately, in all released OpenSSL versions (as far as I can tell&lt;br/&gt;master is the only branch that has fixed this issue), it&amp;#39;s tested like&lt;br/&gt;so:&lt;br/&gt;&lt;br/&gt;- Try a method. If it fails, set a global error and return.&lt;br/&gt;- If the global error is set, try a different method.&lt;br/&gt;&lt;br/&gt;Prior to OpenSSL 1.0.0, these were tested in the order:&lt;br/&gt;EC_GFp_nist_method -&amp;gt; EC_GFp_mont_method. The secp256k1 curve fails&lt;br/&gt;the ec_GFp_nist_group_set_curve test and sets the global error. That&lt;br/&gt;error is then checked for failure, and EC_GFp_mont_method is tried&lt;br/&gt;(and succeeds).&lt;br/&gt;&lt;br/&gt;Obviously that global error usage is dangerous, especially since it&lt;br/&gt;happens for _each_ transaction verification in libbitcoinconsensus. In&lt;br/&gt;a multi-threaded environment, a crash is guaranteed within a few&lt;br/&gt;seconds.&lt;br/&gt;&lt;br/&gt;However, OpenSSL 1.0.1 reversed the order, trying EC_GFp_mont_method&lt;br/&gt;first, so that the global error doesn&amp;#39;t end up being used:&lt;br/&gt;&lt;a href=&#34;https://github.com/openssl/openssl/commit/17674bfdf75bffa4e225f8328b9d42cb74504005&#34;&gt;https://github.com/openssl/openssl/commit/17674bfdf75bffa4e225f8328b9d42cb74504005&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This was backported from master back to 1.0.1, but not to 1.0.0 or 0.9.8.&lt;br/&gt;&lt;br/&gt;So that change (accidentally) &amp;#34;solved&amp;#34; the problem. As you can see,&lt;br/&gt;it&amp;#39;s still possible to hit the reversed order in the&lt;br/&gt;!defined(OPENSSL_BN_ASM_MONT) case. That&amp;#39;s easily tested by building&lt;br/&gt;OpenSSL with the -no-asm config option. It&amp;#39;s probably also the case&lt;br/&gt;for obscure architectures and OSs, but I haven&amp;#39;t looked deeply into&lt;br/&gt;that. In that case, it&amp;#39;s reasonable to assume that this crash would&lt;br/&gt;likely occur on such platforms.&lt;br/&gt;&lt;br/&gt;Also, OSX, even the latest version (10.10 as of now), still ships with&lt;br/&gt;OpenSSL 0.9.8. Which is how Tamas ran into it.&lt;br/&gt;&lt;br/&gt;Since Bitcoin Core and libbitcoinconsensus are switching away from&lt;br/&gt;OpenSSL for verification in the near future, I don&amp;#39;t think this is&lt;br/&gt;much of an issue. Especially since the problem manifests as a&lt;br/&gt;controlled assertion failure/abort. However, I&amp;#39;ve prepared a patch for&lt;br/&gt;anyone who may run into the issue in the short-term:&lt;br/&gt;&lt;a href=&#34;https://github.com/theuni/bitcoin/commit/adf0a691ee1c2f02e26828f976cfe5b78896b507&#34;&gt;https://github.com/theuni/bitcoin/commit/adf0a691ee1c2f02e26828f976cfe5b78896b507&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll open a pull-request for Bitcoin Core to discuss whether it&amp;#39;s&lt;br/&gt;worth merging or not.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Fri, Aug 14, 2015 at 5:10 PM, Cory Fields &amp;lt;lists at coryfields.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; Ugh, what an unfortunate oversight!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The good news is that this issue should be solved in future versions&lt;br/&gt;&amp;gt; when we switch to the new libsecp256k1 lib for validation.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; For now, I&amp;#39;ve thrown together a quick hack to allow a user-specifiable&lt;br/&gt;&amp;gt; callback for libbitcoinconsensus. I think it&amp;#39;s not worth messing with&lt;br/&gt;&amp;gt; the official API since it will be fixed soon, but rather hacked in as&lt;br/&gt;&amp;gt; a temporary work-around as needed. It _should_ be documented as an&lt;br/&gt;&amp;gt; issue with the current version, though.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Please see here for a work-around to try:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/theuni/bitcoin/commits/openssl-consensus-threads&#34;&gt;https://github.com/theuni/bitcoin/commits/openssl-consensus-threads&lt;/a&gt;&lt;br/&gt;&amp;gt; Unfortunately it&amp;#39;s not pretty, but it works fine here. Note that you&lt;br/&gt;&amp;gt; should give this some _serious_ testing before deploying in any real&lt;br/&gt;&amp;gt; way. It should mimic the way we do it in Core, though.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That&amp;#39;s on top of current master, but it should be trivial to apply to&lt;br/&gt;&amp;gt; release tags.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Please let me know how it works out.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Regards,&lt;br/&gt;&amp;gt; Cory&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Fri, Aug 14, 2015 at 12:37 PM, Tamas Blummer via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; We integrated libconsensus into bits of proof. It works well, in-line for all test cases with our Java engine and is about 50% faster on a single thread.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The performance advantage unfortunatelly reverses if libconsensus is executed on several threads simultaneously as we do with the Java engine, since an error:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;         Assertion failed: (pkey != NULL), function CECKey, file ecwrapper.cpp, line 96.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; arises under that stress.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I guess that the cause is that thread callbacks as advised for OpenSSL on &lt;a href=&#34;https://www.openssl.org/docs/crypto/threads.html&#34;&gt;https://www.openssl.org/docs/crypto/threads.html&lt;/a&gt; are not registered.&lt;br/&gt;&amp;gt;&amp;gt; Registering those however would require access to OpenSSL functions, not exported from the lib.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I’d be thankful for a pointer to a workaround.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Tamas Blummer&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;
    </content>
    <updated>2023-06-07T17:46:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd63dq6gtyltemwdsscpt66pzj2024aq6pyq4pn0fpr9vzp5est5szyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcec4sgg</id>
    
      <title type="html">📅 Original date posted:2015-08-14 📝 Original message:Ugh, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd63dq6gtyltemwdsscpt66pzj2024aq6pyq4pn0fpr9vzp5est5szyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcec4sgg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2z2gx8tqw7xln6wqnduswyeccsaj9eptr4ne54pakvfw2pkjachgwq324f&#39;&gt;nevent1q…324f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-14&lt;br/&gt;📝 Original message:Ugh, what an unfortunate oversight!&lt;br/&gt;&lt;br/&gt;The good news is that this issue should be solved in future versions&lt;br/&gt;when we switch to the new libsecp256k1 lib for validation.&lt;br/&gt;&lt;br/&gt;For now, I&amp;#39;ve thrown together a quick hack to allow a user-specifiable&lt;br/&gt;callback for libbitcoinconsensus. I think it&amp;#39;s not worth messing with&lt;br/&gt;the official API since it will be fixed soon, but rather hacked in as&lt;br/&gt;a temporary work-around as needed. It _should_ be documented as an&lt;br/&gt;issue with the current version, though.&lt;br/&gt;&lt;br/&gt;Please see here for a work-around to try:&lt;br/&gt;&lt;a href=&#34;https://github.com/theuni/bitcoin/commits/openssl-consensus-threads&#34;&gt;https://github.com/theuni/bitcoin/commits/openssl-consensus-threads&lt;/a&gt;&lt;br/&gt;Unfortunately it&amp;#39;s not pretty, but it works fine here. Note that you&lt;br/&gt;should give this some _serious_ testing before deploying in any real&lt;br/&gt;way. It should mimic the way we do it in Core, though.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s on top of current master, but it should be trivial to apply to&lt;br/&gt;release tags.&lt;br/&gt;&lt;br/&gt;Please let me know how it works out.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Fri, Aug 14, 2015 at 12:37 PM, Tamas Blummer via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; We integrated libconsensus into bits of proof. It works well, in-line for all test cases with our Java engine and is about 50% faster on a single thread.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The performance advantage unfortunatelly reverses if libconsensus is executed on several threads simultaneously as we do with the Java engine, since an error:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;         Assertion failed: (pkey != NULL), function CECKey, file ecwrapper.cpp, line 96.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; arises under that stress.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I guess that the cause is that thread callbacks as advised for OpenSSL on &lt;a href=&#34;https://www.openssl.org/docs/crypto/threads.html&#34;&gt;https://www.openssl.org/docs/crypto/threads.html&lt;/a&gt; are not registered.&lt;br/&gt;&amp;gt; Registering those however would require access to OpenSSL functions, not exported from the lib.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I’d be thankful for a pointer to a workaround.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Tamas Blummer&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;
    </content>
    <updated>2023-06-07T17:46:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsty6f8npshsu94y7ywm6wqeupjp5268wd8wu8x82tcwhusxqfpelczyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcxkuq9q</id>
    
      <title type="html">📅 Original date posted:2015-07-22 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsty6f8npshsu94y7ywm6wqeupjp5268wd8wu8x82tcwhusxqfpelczyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcxkuq9q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp5qepzky52lsc29636rm7ran5403fll5z343976q6p4ktpva40kcz8cj8t&#39;&gt;nevent1q…cj8t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-22&lt;br/&gt;📝 Original message:On Wed, Jul 22, 2015 at 8:13 PM, Eric Lombrozo &amp;lt;elombrozo at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Jul 22, 2015, at 5:05 PM, Cory Fields &amp;lt;lists at coryfields.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, Jul 22, 2015 at 7:53 PM, Eric Lombrozo &amp;lt;elombrozo at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; FWIW, I had worked on something similar a while back:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/CodeShark/bitcoin/tree/coinparams_new/altconf&#34;&gt;https://github.com/CodeShark/bitcoin/tree/coinparams_new/altconf&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; I like the idea in principle…but we should require a new genesis block,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; different magic bytes, and a different network port at the very least. :)&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Not sure if serious, so I&amp;#39;ll assume you are :)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Only being partly serious - I strongly am in favor of a sufficiently modularized codebase that swapping out consensus rules is fairly straightforward and easy to test. I’m not in favor of encouraging forking an existing blockchain without having mechanisms in place to gracefully merge back without significant network disruptions. We do not have this yet.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Again, why? If someone wants to create a scamcoin, they can. If&lt;br/&gt;someone wants to burn money on a scamcoin, equally, they can. I&amp;#39;m not&lt;br/&gt;sure how this is any different. If someone manages to garner realistic&lt;br/&gt;support for a hard-fork, I don&amp;#39;t see the benefit in forcing them to&lt;br/&gt;use forked software.. that only leaves Core in the middle because it&amp;#39;s&lt;br/&gt;forced to choose a side (not choosing is unfortunately a side as&lt;br/&gt;well). It doesn&amp;#39;t remove the reality of the split.&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; Why? The idea in this case would be to allow the user to decide&lt;br/&gt;&amp;gt;&amp;gt; between (say) &amp;#34;./bitcoind -1mbchain&amp;#34; and &amp;#34;./bitcoind -2mbchain&amp;#34; at&lt;br/&gt;&amp;gt;&amp;gt; runtime rather than the likely alternative of &amp;#34;./bitcoind&amp;#34; vs&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;./bitcoin-fork”.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That’s exactly what my coinparams_new branch does. Adding a parameter for maximum block size would be straightforward.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Chain params may be identical other than the value of some future&lt;br/&gt;&amp;gt;&amp;gt; event (miner vote for example), in which case the configs would run&lt;br/&gt;&amp;gt;&amp;gt; identically until that point.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes, indeed - this would be a special case.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If your concern is about nodes with different configs communicating&lt;br/&gt;&amp;gt;&amp;gt; with eachother, I&amp;#39;d like to reiterate: the idea really is no different&lt;br/&gt;&amp;gt;&amp;gt; than suggesting that someone fork the codebase and implement their own&lt;br/&gt;&amp;gt;&amp;gt; changes, it just cuts out most of the work required.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I do not encourage anyone to try to fork an existing blockchain without first securing overwhelming (near unanimous) consensus…or without having yet built a mechanism that can merge divergent chains gracefully.&lt;br/&gt;&lt;br/&gt;Well of course. It would be a terrible idea. People would try it and&lt;br/&gt;fail, and lose money. But for those crying foul at Core for being the&lt;br/&gt;consensus/policy gatekeeper, it seems to me that user-selectable&lt;br/&gt;params is the only logical solution.
    </content>
    <updated>2023-06-07T17:43:08&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs09e0v4yrtgg5z0usu8pggnffsht6cfryjxf0cg78qz7rjvsn6ufgzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcp9tk4v</id>
    
      <title type="html">📅 Original date posted:2015-07-22 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs09e0v4yrtgg5z0usu8pggnffsht6cfryjxf0cg78qz7rjvsn6ufgzyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcp9tk4v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdhvu059530tqwjtudrsdpcgazyskjlklj0s43hwtn5anmuf69jxspefnw7&#39;&gt;nevent1q…fnw7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-22&lt;br/&gt;📝 Original message:I&amp;#39;m not sure why Bitcoin Core and the rules and policies that it&lt;br/&gt;enforces are being conflated in this thread. There&amp;#39;s nothing stopping&lt;br/&gt;us from adding the ability for the user to decide what their consensus&lt;br/&gt;parameters should be at runtime. In fact, that&amp;#39;s already in use:&lt;br/&gt;./bitcoind -testnet. As mentioned in another thread, the chain params&lt;br/&gt;could even come from a config file that the user could edit without&lt;br/&gt;touching the code.&lt;br/&gt;&lt;br/&gt;I realize that it&amp;#39;d be opening Pandora&amp;#39;s Box, and likely met with very&lt;br/&gt;loud and reasonable arguments about the obvious terrible implications,&lt;br/&gt;but it&amp;#39;s at least an alternative to the current status quo of Core&amp;#39;s&lt;br/&gt;conflation with the consensus rules. The idea really is no different&lt;br/&gt;than suggesting that someone fork the codebase and implement their own&lt;br/&gt;changes, it just cuts out most of the work required.&lt;br/&gt;&lt;br/&gt;With that in place, consensus changes would be more about lobbying and&lt;br/&gt;coalitions, and less about pull requests.&lt;br/&gt;&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Wed, Jul 22, 2015 at 6:40 PM, Raystonn via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; If the developers fail to reflect user consensus, the network will let us&lt;br/&gt;&amp;gt;&amp;gt; know.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This is true with the caveat that there must be more than one option present&lt;br/&gt;&amp;gt; for the network to show it&amp;#39;s preference.  If developers discourage anything&lt;br/&gt;&amp;gt; that forks from the rules enforced by Bitcoin Core, they harm the network&amp;#39;s&lt;br/&gt;&amp;gt; ability to inform us of a failure to reflect user consensus.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On 22 Jul 2015 3:31 pm, Jeff Garzik via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I wouldn&amp;#39;t go quite that far.  The reality is somewhere in the middle, as&lt;br/&gt;&amp;gt; Bryan Cheng noted in this thread:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Quoting BC,&lt;br/&gt;&amp;gt;&amp;gt; Upgrading to a version of Bitcoin Core that is incompatible with your&lt;br/&gt;&amp;gt;&amp;gt; ideals is in no way a forced choice, as you have stated in your email;&lt;br/&gt;&amp;gt;&amp;gt; forks, alternative clients, or staying on an older version are all valid&lt;br/&gt;&amp;gt;&amp;gt; choices. If the majority of the network chooses not to endorse a specific&lt;br/&gt;&amp;gt;&amp;gt; change, then the majority of the network will continue to operate just fine&lt;br/&gt;&amp;gt;&amp;gt; without it, and properly structured consensus rules will pull the minority&lt;br/&gt;&amp;gt;&amp;gt; along as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The developers propose a new version, by publishing a new release.  The&lt;br/&gt;&amp;gt; individual network nodes choose to accept or reject that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So I respectfully disagree with &amp;#34;core devs don&amp;#39;t control the network&amp;#34; and&lt;br/&gt;&amp;gt; &amp;#34;core devs control the network&amp;#34; both.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are checks-and-balances that make the system work.  Consensus is most&lt;br/&gt;&amp;gt; strongly measured by user actions after software release.  If the developers&lt;br/&gt;&amp;gt; fail to reflect user consensus, the network will let us know.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jul 22, 2015 at 2:43 PM, Mike Hearn via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hi Pieter,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think a core area of disagreement is this:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Bitcoin Core is not running the Bitcoin economy, and its developers have no&lt;br/&gt;&amp;gt; authority to set its rules.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In fact Bitcoin Core is running the Bitcoin economy, and its developers do&lt;br/&gt;&amp;gt; have the authority to set its rules. This is enforced by the reality of&lt;br/&gt;&amp;gt; ~100% market share and limited github commit access.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You may not like this situation, but it is what it is. By refusing to make a&lt;br/&gt;&amp;gt; release with different rules, people who disagree are faced with only two&lt;br/&gt;&amp;gt; options:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Swallow it even if they hate it&lt;br/&gt;&amp;gt; 2. Fork the project and fork the block chain with it (XT)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are no alternatives. People who object to (2) are inherently&lt;br/&gt;&amp;gt; suggesting (1) is the only acceptable path, which not surprisingly, makes a&lt;br/&gt;&amp;gt; lot of people very angry.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;
    </content>
    <updated>2023-06-07T17:43:07&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrv7tr4xwxpff7zf98s43l0sq62gf8v5amt3u752ve4y9ajld7k9czyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcweawnt</id>
    
      <title type="html">📅 Original date posted:2015-07-22 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrv7tr4xwxpff7zf98s43l0sq62gf8v5amt3u752ve4y9ajld7k9czyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcweawnt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfrc9ntfh3s8mkl4aex5wp7sdk4k0rak88auup8y8epvn3c32uycc0y4cz2&#39;&gt;nevent1q…4cz2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-22&lt;br/&gt;📝 Original message:On Wed, Jul 22, 2015 at 7:53 PM, Eric Lombrozo &amp;lt;elombrozo at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; FWIW, I had worked on something similar a while back:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/CodeShark/bitcoin/tree/coinparams_new/altconf&#34;&gt;https://github.com/CodeShark/bitcoin/tree/coinparams_new/altconf&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I like the idea in principle…but we should require a new genesis block,&lt;br/&gt;&amp;gt; different magic bytes, and a different network port at the very least. :)&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Not sure if serious, so I&amp;#39;ll assume you are :)&lt;br/&gt;&lt;br/&gt;Why? The idea in this case would be to allow the user to decide&lt;br/&gt;between (say) &amp;#34;./bitcoind -1mbchain&amp;#34; and &amp;#34;./bitcoind -2mbchain&amp;#34; at&lt;br/&gt;runtime rather than the likely alternative of &amp;#34;./bitcoind&amp;#34; vs&lt;br/&gt;&amp;#34;./bitcoin-fork&amp;#34;.&lt;br/&gt;&lt;br/&gt;Chain params may be identical other than the value of some future&lt;br/&gt;event (miner vote for example), in which case the configs would run&lt;br/&gt;identically until that point.&lt;br/&gt;&lt;br/&gt;If your concern is about nodes with different configs communicating&lt;br/&gt;with eachother, I&amp;#39;d like to reiterate: the idea really is no different&lt;br/&gt;than suggesting that someone fork the codebase and implement their own&lt;br/&gt;changes, it just cuts out most of the work required.&lt;br/&gt;&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;&amp;gt; On Jul 22, 2015, at 4:42 PM, Cory Fields via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;m not sure why Bitcoin Core and the rules and policies that it&lt;br/&gt;&amp;gt; enforces are being conflated in this thread. There&amp;#39;s nothing stopping&lt;br/&gt;&amp;gt; us from adding the ability for the user to decide what their consensus&lt;br/&gt;&amp;gt; parameters should be at runtime. In fact, that&amp;#39;s already in use:&lt;br/&gt;&amp;gt; ./bitcoind -testnet. As mentioned in another thread, the chain params&lt;br/&gt;&amp;gt; could even come from a config file that the user could edit without&lt;br/&gt;&amp;gt; touching the code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I realize that it&amp;#39;d be opening Pandora&amp;#39;s Box, and likely met with very&lt;br/&gt;&amp;gt; loud and reasonable arguments about the obvious terrible implications,&lt;br/&gt;&amp;gt; but it&amp;#39;s at least an alternative to the current status quo of Core&amp;#39;s&lt;br/&gt;&amp;gt; conflation with the consensus rules. The idea really is no different&lt;br/&gt;&amp;gt; than suggesting that someone fork the codebase and implement their own&lt;br/&gt;&amp;gt; changes, it just cuts out most of the work required.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With that in place, consensus changes would be more about lobbying and&lt;br/&gt;&amp;gt; coalitions, and less about pull requests.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Cory&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jul 22, 2015 at 6:40 PM, Raystonn via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the developers fail to reflect user consensus, the network will let us&lt;br/&gt;&amp;gt; know.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This is true with the caveat that there must be more than one option present&lt;br/&gt;&amp;gt; for the network to show it&amp;#39;s preference.  If developers discourage anything&lt;br/&gt;&amp;gt; that forks from the rules enforced by Bitcoin Core, they harm the network&amp;#39;s&lt;br/&gt;&amp;gt; ability to inform us of a failure to reflect user consensus.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On 22 Jul 2015 3:31 pm, Jeff Garzik via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I wouldn&amp;#39;t go quite that far.  The reality is somewhere in the middle, as&lt;br/&gt;&amp;gt; Bryan Cheng noted in this thread:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Quoting BC,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Upgrading to a version of Bitcoin Core that is incompatible with your&lt;br/&gt;&amp;gt; ideals is in no way a forced choice, as you have stated in your email;&lt;br/&gt;&amp;gt; forks, alternative clients, or staying on an older version are all valid&lt;br/&gt;&amp;gt; choices. If the majority of the network chooses not to endorse a specific&lt;br/&gt;&amp;gt; change, then the majority of the network will continue to operate just fine&lt;br/&gt;&amp;gt; without it, and properly structured consensus rules will pull the minority&lt;br/&gt;&amp;gt; along as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The developers propose a new version, by publishing a new release.  The&lt;br/&gt;&amp;gt; individual network nodes choose to accept or reject that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So I respectfully disagree with &amp;#34;core devs don&amp;#39;t control the network&amp;#34; and&lt;br/&gt;&amp;gt; &amp;#34;core devs control the network&amp;#34; both.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are checks-and-balances that make the system work.  Consensus is most&lt;br/&gt;&amp;gt; strongly measured by user actions after software release.  If the developers&lt;br/&gt;&amp;gt; fail to reflect user consensus, the network will let us know.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jul 22, 2015 at 2:43 PM, Mike Hearn via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hi Pieter,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think a core area of disagreement is this:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Bitcoin Core is not running the Bitcoin economy, and its developers have no&lt;br/&gt;&amp;gt; authority to set its rules.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In fact Bitcoin Core is running the Bitcoin economy, and its developers do&lt;br/&gt;&amp;gt; have the authority to set its rules. This is enforced by the reality of&lt;br/&gt;&amp;gt; ~100% market share and limited github commit access.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You may not like this situation, but it is what it is. By refusing to make a&lt;br/&gt;&amp;gt; release with different rules, people who disagree are faced with only two&lt;br/&gt;&amp;gt; options:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Swallow it even if they hate it&lt;br/&gt;&amp;gt; 2. Fork the project and fork the block chain with it (XT)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are no alternatives. People who object to (2) are inherently&lt;br/&gt;&amp;gt; suggesting (1) is the only acceptable path, which not surprisingly, makes a&lt;br/&gt;&amp;gt; lot of people very angry.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;
    </content>
    <updated>2023-06-07T17:43:07&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8ad3ng77f6l0en2c2fchn5sdu7hx677jfx5t0a3kq05chvcrq0qszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcswkne8</id>
    
      <title type="html">📅 Original date posted:2014-10-15 📝 Original message:Sounds ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8ad3ng77f6l0en2c2fchn5sdu7hx677jfx5t0a3kq05chvcrq0qszyq5wj83yn0ynqy4c26ysg0jjsjnjhtx43n4t7t60k65gw0gjuw0hcswkne8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszr47sfdlh3pctt57942a3sdtauypm0hedt7gqh3eq3vp5pe3a2csx33k8w&#39;&gt;nevent1q…3k8w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-10-15&lt;br/&gt;📝 Original message:Sounds like this is what you&amp;#39;re after, it&amp;#39;s a fairly new feature:&lt;br/&gt;&lt;a href=&#34;https://github.com/blog/1375%0A-task-lists-in-gfm-issues-pulls-comments&#34;&gt;https://github.com/blog/1375%0A-task-lists-in-gfm-issues-pulls-comments&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been meaning to use it in a PR to try it out.&lt;br/&gt;&lt;br/&gt;Cory&lt;br/&gt;&lt;br/&gt;On Wed, Oct 15, 2014 at 5:36 AM, Wladimir &amp;lt;laanwj at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; This all makes a lot of sense to me, and would help a lot with the&lt;br/&gt;&amp;gt;&amp;gt; workflow.  Unfortunately github pulls and issues really have nothing&lt;br/&gt;&amp;gt;&amp;gt; to faciltate a multistage workflow... e.g. where something can go&lt;br/&gt;&amp;gt;&amp;gt; through several steps.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Indeed, pull requests don&amp;#39;t have a &amp;#34;status&amp;#34;.&lt;br/&gt;&amp;gt; It would be possible to (ab)use labels for this.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The drawback of labels is that only the repository team can set these,&lt;br/&gt;&amp;gt; there is no way to delegate. But I suppose it&amp;#39;d be possible to build&lt;br/&gt;&amp;gt; something on top of the github API that handles this.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; We&amp;#39;re also having problems with people failing to comment on things,&lt;br/&gt;&amp;gt;&amp;gt; not even &amp;#34;I looked at this and have no opinion&amp;#34;, which is really&lt;br/&gt;&amp;gt;&amp;gt; obstructing things.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Well - the only way to avoid that is to set a reasonable deadline,&lt;br/&gt;&amp;gt; after which there is a default decision. You&amp;#39;d hope this would&lt;br/&gt;&amp;gt; motivate people to get involved in time.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Wladimir&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; Comprehensive Server Monitoring with Site24x7.&lt;br/&gt;&amp;gt; Monitor 10 servers for $9/Month.&lt;br/&gt;&amp;gt; Get alerted through email, SMS, voice calls or mobile push notifications.&lt;br/&gt;&amp;gt; Take corrective actions from your mobile device.&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://p.sf.net/sfu/Zoho&#34;&gt;http://p.sf.net/sfu/Zoho&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;
    </content>
    <updated>2023-06-07T17:26:29&#43;02:00</updated>
  </entry>

</feed>