<oembed><type>rich</type><version>1.0</version><author_name>npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8</author_name><author_url>https://nostr.ae/npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-02-14&#xA;📝 Original message:On Sat, Feb 14, 2015 at 3:23 PM, Tamas Blummer &lt;tamas at bitsofproof.com&gt; wrote:&#xA;&gt; Peter,&#xA;&gt; We have seen that the consensus critical code practically extends to Berkley&#xA;&gt; DB limits or OpenSSL laxness, therefore&#xA;&gt; it is inconceivable that a consensus library is not the same as Bitcoin&#xA;&gt; Core, less its P2P service rules, wallet and RPC server.&#xA;&#xA;Right now libconsensus&#39; only dependency is openSSL. Most of the&#xA;testing in libsecp256k1 has been in signing rather than verifying&#xA;signatures (please, anyone with more knowledge in the library don&#39;t&#xA;hesitate to correct me or clarify things). But eventually openSSL will&#xA;be completely replaced by libsecp256k1.&#xA;It does not store anything, 0.1 is just a dynamic library with a c API&#xA;to a single function: VerifyScript().&#xA;This function saves the hassle of reimplementing signature checking&#xA;(which is a really hard part) and reimplementing an interpreter that&#xA;must function in exactly the same way in many as many other nodes with&#xA;different software and/or hardware.&#xA;Guido van Rossum can say &#34;some behaviours in python the language are&#xA;not specified, so it is ok if cpython and pypy do different things,&#xA;they&#39;re still both running python which is more abstract than any of&#xA;its implementation&#34;.&#xA;But a consensus system like bitcoin doesn&#39;t have the luxury of leaving&#xA;consensus rules unspecified. And the simplest way to fully specify a&#xA;language interpreter is by implementing it.&#xA;But coupling the consensus rules specification with a bigger project&#xA;like bitcoin core can result in implementation details of that bigger&#xA;project accidentally and unexpectedly becoming consensus rules. This&#xA;is what happened with bdb and nobody wants that to happen again,&#xA;that&#39;s the whole point.&#xA;Note that many parts of the bitcoin protocol (like the p2p messages)&#xA;are NOT part of the consensus rules.&#xA;You can have a look at&#xA;https://github.com/jtimon/bitcoin/commits/consensus2 and maybe you&#xA;would be surprised about how small they actually are. This branch is&#xA;incomplete and still a mess that needs to be cleaned up. And none of&#xA;that is included in libconsensus yet.&#xA;I was planning on writing a post here asking for feedback on the&#xA;interfaces for these higher level checks. I&#39;m just putting the code&#xA;together in the same module, but obviously class CCoinsViewCache&#xA;cannot be an argument in functions of a c API.&#xA;&#xA;&gt; The Core code base is unfriendly to feature extensions because of its&#xA;&gt; criticality, legacy design and ancient technology. It is also a commodity&#xA;&gt; that the ecosystem takes for granted and free.&#xA;&gt;&#xA;&gt; I honestly admire the core team that works and progresses within these&#xA;&gt; limits and perception.&#xA;&gt;&#xA;&gt; I am not willing to work within the core’s legacy technology limits. Does it&#xA;&gt; mean I am dicking around? I think not.&#xA;&gt; It was my way to go down the rabbit hole by re-digging it and I created&#xA;&gt; successful commercial products on the way.&#xA;&#xA;Nobody is attacking alternative implementations. This tool was created&#xA;mostly with alternative implementations in mind.&#xA;So input from them it&#39;s very welcomed on how to continue libconsensus&#xA;(or of course correct any flaws in verifyScript if there&#39;s any).&#xA;I just wanted to wait to have some more code to make things easier to&#xA;explain (and have a clearer idea of it myself).&#xA;There&#39;s a more limited branch on &#34;next steps for libconsensus&#34; in #5669.&#xA;&#xA;&gt; It is entirely rational for me to focus on innovation that uses the core as&#xA;&gt; a border router for this block chain.&#xA;&#xA;Sure, I think he is complaining that at the moment that&#39;s probably the&#xA;only safe way to operate with alternative implementations and still&#xA;have full node guarantees.&#xA;&#xA;&gt; I am rather thankful for the ideas of the side chains, that enable&#xA;&gt; innovation that is no longer measured on unapologetic compatibility with a&#xA;&gt; given code base, but its services to end user.&#xA;&#xA;Sidechains are completely orthogonal to this discussion and, in fact,&#xA;it would be good to have libconsensuses for sidechains too, since&#xA;their nodes also need to come to consensus.</html></oembed>