Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B4654826 for ; Fri, 21 Aug 2015 19:46:36 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com [209.85.217.181]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 6866E14C for ; Fri, 21 Aug 2015 19:46:35 +0000 (UTC) Received: by lbbsx3 with SMTP id sx3so49931021lbb.0 for ; Fri, 21 Aug 2015 12:46:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=LigbJb5W8qFk0EKeOD1UDbytpAy+yzxQIpSAnqPpHTY=; b=l8ID04dHWTUOvH5RFSjzBEPKms6tNKJCPTV4CHy4/xbdCObPCJ69mHLS3r+9l9zdIB G+XzgmhaqtrtcWSL8lcMLksP9mOHLSAYsRzoMeE6ZCvVMnrYCsqgy1eZ3/vmiMoSyJ1e IOaRPGt+YPW7KpuD4N0JBUdp597Y/cnrJg1H4hScGuLizjRttX93QbUPjyAlaWgY0tV2 1z6NfpMWjHFouP6EC1Atb+3Lrqcvc34Byd/zJhTkbgE7ESuCmxOYyMulTtohrgtI/6NS xw31VCB7kwTyr+wEEU+Pczwblsszs6FWBrbN7tyAEHfqknJUyBqu+aPdOSefqZMEC2XG ZaLQ== X-Gm-Message-State: ALoCoQnlRUL1ceoSdZbIg1J9rq6j6yBARz6ovzmIotraNwJ39Fy/POOHlZtqobcMNetRhdw4GUgw MIME-Version: 1.0 X-Received: by 10.152.42.170 with SMTP id p10mr9043677lal.39.1440186393489; Fri, 21 Aug 2015 12:46:33 -0700 (PDT) Received: by 10.25.15.22 with HTTP; Fri, 21 Aug 2015 12:46:33 -0700 (PDT) In-Reply-To: <3390F712-879A-46E9-ABCD-D35B51190304@bitsofproof.com> References: <55B723EA.7010700@voskuil.org> <55B939CF.1080903@voskuil.org> <3390F712-879A-46E9-ABCD-D35B51190304@bitsofproof.com> Date: Fri, 21 Aug 2015 21:46:33 +0200 Message-ID: From: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= To: Tamas Blummer Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, URIBL_BLACK autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Bitcoin Dev , Libbitcoin Subject: Re: [bitcoin-dev] Libconsensus separated repository (was Bitcoin Core and hard forks) X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Aug 2015 19:46:36 -0000 On Thu, Aug 20, 2015 at 10:35 AM, Tamas Blummer wro= te: > Every re-implementation, re-factoring even copy-paste introduces a risk o= f disagreement, > but also open the chance of doing the work better, in the sense of softwa= re engineering. But you don't want something better, you want something functionally identi= cal. You may want to watch sipa's explanation on why "the implementation is the specification" and the reasons to separate libconsensus: https://youtu.be/l3O4nh79CUU?t=3D764 >> On Aug 20, 2015, at 10:06, Jorge Tim=C3=B3n wrote: >> >> >> But the goal is not reimplementing the consensus rules but rather >> extract them from Bitcoin Core so that nobody needs to re-implement >> them again. > > > > My goal is different. Compatibility with Bitcoin is important as I also w= ant to deal with Bitcoins, > but it is also imperative to be able to create and serve other block chai= ns with other rules and for those > I do not want to carry on the legacy of an antique tool set and a spaghet= ti style. > > Bits of Proof uses scala (akka networking), java (api service), c++ (leve= ledb and now libconsensus) > and I am eager to integrate secp256k1 (c) as soon as part of consensus. T= he choices were > made because each piece appears best in what they do. Since you already depend on libconsensus for VerifyScript, wouldn't it be nice that it also offered VerifyTx, VerifyHeader and VerifyBlock? You would still have complete control over storage, concurrency, networking, policy... My plan is for the C API to interface with the external storage by passing a function pointer to it.