summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorodinn <odinn.cyberguerrilla@riseup.net>2015-07-19 01:59:49 -0700
committerbitcoindev <bitcoindev@gnusha.org>2015-07-19 08:59:52 +0000
commitb859eff2c8f02b92478b3ef9cb9ee5dcfb02604a (patch)
treef1319b2a6256c8d4f02133c03a5456b84549bd22
parenta6383127c836618fd8d1b76a877c751fbbf75858 (diff)
downloadpi-bitcoindev-b859eff2c8f02b92478b3ef9cb9ee5dcfb02604a.tar.gz
pi-bitcoindev-b859eff2c8f02b92478b3ef9cb9ee5dcfb02604a.zip
Re: [bitcoin-dev] Do we really need a mempool? (for relay nodes)
-rw-r--r--6c/fcd38581012e597de8070d25e7b86cf6e09ae4169
1 files changed, 169 insertions, 0 deletions
diff --git a/6c/fcd38581012e597de8070d25e7b86cf6e09ae4 b/6c/fcd38581012e597de8070d25e7b86cf6e09ae4
new file mode 100644
index 000000000..0d883cd10
--- /dev/null
+++ b/6c/fcd38581012e597de8070d25e7b86cf6e09ae4
@@ -0,0 +1,169 @@
+Return-Path: <odinn.cyberguerrilla@riseup.net>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id 06AD7409
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sun, 19 Jul 2015 08:59:52 +0000 (UTC)
+X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
+Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 068FD190
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sun, 19 Jul 2015 08:59:50 +0000 (UTC)
+Received: from plantcutter.riseup.net (plantcutter-pn.riseup.net [10.0.1.121])
+ (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
+ (Client CN "*.riseup.net",
+ Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
+ by mx1.riseup.net (Postfix) with ESMTPS id 79B23420BA
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sun, 19 Jul 2015 08:59:50 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak;
+ t=1437296390; bh=5H3EsVtmiW4/Q3O/NwaimQN98qWercL6mIpowHcgG4g=;
+ h=Date:From:To:Subject:References:In-Reply-To:From;
+ b=Duhe/YowZhEdi/frBqOaDG1lVXWQkGuNdFan7S8fEgFYsXcuaKRYPkSHmgM0BXbwT
+ fehz5spD3eSzHy1nQgG1gmBoAgxA6YjC46RW3EqyIUJNxcGlBuySQXn2isS1So9vkw
+ 9Xf0PtFraLBRIlUvuJR1+sLOjhajoKa1lxu/oMeQ=
+Received: from [127.0.0.1] (localhost [127.0.0.1])
+ (Authenticated sender: odinn.cyberguerrilla)
+ with ESMTPSA id 334C71FC52
+Message-ID: <55AB6705.7080701@riseup.net>
+Date: Sun, 19 Jul 2015 01:59:49 -0700
+From: odinn <odinn.cyberguerrilla@riseup.net>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+ rv:31.0) Gecko/20100101 Thunderbird/31.7.0
+MIME-Version: 1.0
+To: bitcoin-dev@lists.linuxfoundation.org
+References: <20150718185259.GA3477@muck> <55AAACF9.90007@gmail.com>
+In-Reply-To: <55AAACF9.90007@gmail.com>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+X-Virus-Scanned: clamav-milter 0.98.7 at mx1
+X-Virus-Status: Clean
+X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_LOW, RP_MATCHES_RCVD,
+ UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ smtp1.linux-foundation.org
+Subject: Re: [bitcoin-dev] Do we really need a mempool? (for relay nodes)
+X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
+X-Mailman-Version: 2.1.12
+Precedence: list
+List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
+List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
+List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
+List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
+List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
+List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
+X-List-Received-Date: Sun, 19 Jul 2015 08:59:52 -0000
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+Some brief thoughts, adding here a suggestion for a dynamic approach
+to the issue. (e.g. each additional tx relayed has some thing
+associated with it, that is, a "doubling" for each additional tx
+relayed that spends a given UTXO, doesn't sound like it would be the
+most dynamic approach to the issue; considering that full nodes use
+the (UTXOs) to establish if transactions are valid � all inputs to a
+transaction must be in the UTXO database for it to be valid, but
+rather, would end up ratcheting upward the fee/kB for each additional
+tx relayed, as proposed).
+
+A more dynamic fee approach would be a better one, imho, but how is
+this to occur?
+
+Quoting from Gavin Andresen's http://gavinandresen.ninja/utxo-uhoh,
+"The entire UTXO set doesn�t have to be in RAM; it can be stored on an
+SSD or spinning hard disk. The access pattern to the UTXO is not
+random; outputs that were spent recently are more likely to be
+re-spent than outputs that have not been spent in a long time. Bitcoin
+Core already has a multi-level UTXO cache, thanks to the hard work of
+Pieter Wuille."
+
+The relay nodes would, in this scenario that is proposed here in this
+message, be confirming and discarding; the wallet nodes, if I
+understand properly, in this scenario, as proposed, should be
+retaining (keeping a record of the transactions they've relayed and
+using a mempool).
+
+There are some questions here:
+
+- - How is the mempool to be limited?
+- - What is the mechanism by which the UTXO set is stored (or proposed
+to be stored)?
+- - How would dynamic fee determinations be calculated?
+- - Please describe more the general purpose messaging network?
+
+Thank you
+
+
+
+On 07/18/2015 12:46 PM, Patrick Strateman via bitcoin-dev wrote:
+> Relay nodes do not need a mempool, but do need some mechanism to
+> avoid DoS issues.
+>
+> Wallet nodes can use the mempool for fee estimation (in addition
+> to looking at past blocks).
+>
+> On 07/18/2015 11:52 AM, Peter Todd via bitcoin-dev wrote:
+>> As in, do relay nodes need to keep a record of the transactions
+>> they've relayed? Strictly speaking, the answer is no: one a tx is
+>> relayed modulo DoS concerns the entire thing can be discarded by
+>> the node. (unconfirmed txs spending other unconfirmed txs can be
+>> handled by creating packages of transactions, evaluated as a
+>> whole)
+>>
+>> To mitigate DoS concerns, we of course have to have some per-UTXO
+>> limit on bandwidth relayed, but that task can be accomplished by
+>> simply maintaining some kind of per-UTXO record of bandwidth
+>> used. For instance if the weighted fee and fee/KB were recorded,
+>> and forced to - say - double for each additional tx relayed that
+>> spent a given UTXO you would have a clear and simple upper limit
+>> of lifetime bandwidth. Equally it's easy to limit bandwidth
+>> moment to moment by asking peers for highest fee/KB transactions
+>> they advertise first, stopping when our bandwidth limit is
+>> reached.
+>>
+>> You probably could even remove IsStandard() pretty much entirely
+>> with the right increasingly expensive "replacement" policy,
+>> relying on it alone to provide anti-DoS. Obviously this would
+>> simplify some of the debates around mining policy! This could
+>> even be re-used for scalable a general-purpose messaging network
+>> paid by coin ownership if the UTXO set is split up, and some kind
+>> of expiration over time policy is implemented.
+>>
+>> Miners of course would still want to have a mempool, but that
+>> codebase may prove simpler if it doesn't have to work double-duty
+>> for relaying as well.
+>>
+>>
+>>
+>> _______________________________________________ bitcoin-dev
+>> mailing list bitcoin-dev@lists.linuxfoundation.org
+>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
+>
+>
+>
+> _______________________________________________ bitcoin-dev mailing
+> list bitcoin-dev@lists.linuxfoundation.org
+> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
+>
+
+- --
+http://abis.io ~
+"a protocol concept to enable decentralization
+and expansion of a giving economy, and a new social good"
+https://keybase.io/odinn
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQEcBAEBAgAGBQJVq2cFAAoJEGxwq/inSG8CIo4IAJAZ97NvW6Qdjd6HLN8q2074
+sEUGdDeonARiQZXLfGyTJVg43Yb6LKPqkjWPQEgl9LLNni8t99iUqu3BJxedRDjd
+8x+/F8n5VJrUrn1pXUcbC1aWss1y8JPTO2KpF/WL254IFc8iE8MJf4YF8PDSgy5j
+9uW8NvWvdT4dz+rXu9vqfcplz8x7NGQ+CWN2N2JlChhKLMFprXPIx8a7NQwaKdrY
+lTpgAJWGMyPGNCmYQprBjIjOfp8tdTLQFlsLUAsXDmEisJX9goRVGMsHOWLTREoA
+l3kTgM0WMv6MIG7NOQQcWLD7cZdwWYR9e49hc27VcHt2R/FTepvnwPqo2GtE0tM=
+=eRbR
+-----END PGP SIGNATURE-----
+