summaryrefslogtreecommitdiff
path: root/3b/0c75ddb6d4ddbd58fab86b55d2a92cdd8fa233
blob: c231f8effdfbbe1bb7d111562f6293ad86e7b9ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
	helo=mx.sourceforge.net)
	by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <jgarzik@exmulti.com>) id 1T23vX-0005NU-BD
	for bitcoin-development@lists.sourceforge.net;
	Thu, 16 Aug 2012 17:32:11 +0000
X-ACL-Warn: 
Received: from mail-qa0-f47.google.com ([209.85.216.47])
	by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1T23vW-0006KS-CV
	for bitcoin-development@lists.sourceforge.net;
	Thu, 16 Aug 2012 17:32:11 +0000
Received: by qadc11 with SMTP id c11so905261qad.13
	for <bitcoin-development@lists.sourceforge.net>;
	Thu, 16 Aug 2012 10:32:04 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=google.com; s=20120113;
	h=mime-version:x-originating-ip:date:message-id:subject:from:to
	:content-type:x-gm-message-state;
	bh=b5FgedYHi4y7MafQ1Um6vQeZ5sqngzGKPZj/p7tNWfI=;
	b=RisB2rJHFDSIiEQGAlN1QakDJ1FSJNH2ZBd0tjCj0WvZsZzPkT3wuL9ibysLQOWA7S
	I0MU1cs325ysRY8OUMZaJMsM9hJ+Aq1482U1BX1M3gTms/2g9iLB4liPMpDiR7QkWkf1
	onnIlzTeQBMY1jzU8ZB5SwGTgD01CBYxjUWGd/FUxVWJ23EnT8E71hRW8JneUJy3c6tu
	KgPynHokO9sviyQAdiOer3OzBnuRKhzpf72Up/XZ5svv32r2tpkIJ3T3O0xOTQqDrKHL
	AcXcllXRG4bGARurjRsNpcfEdiCpG3DpA3ELMhKw1hF2DdktORl/icE/UF0KDCoxHYA5
	VEyg==
MIME-Version: 1.0
Received: by 10.229.105.166 with SMTP id t38mr1200671qco.136.1345138324653;
	Thu, 16 Aug 2012 10:32:04 -0700 (PDT)
Received: by 10.49.97.6 with HTTP; Thu, 16 Aug 2012 10:32:04 -0700 (PDT)
X-Originating-IP: [2001:4830:1603:2:21c:c0ff:fe79:c8c2]
Date: Thu, 16 Aug 2012 13:32:04 -0400
Message-ID: <CA+8xBpcfxdpg-z4OQab3379amznM30Ae-Kurko0BKuySwfBy+Q@mail.gmail.com>
From: Jeff Garzik <jgarzik@exmulti.com>
To: Bitcoin Development <bitcoin-development@lists.sourceforge.net>
Content-Type: text/plain; charset=ISO-8859-1
X-Gm-Message-State: ALoCoQkmq6nLCmVIxBycmURx2M3NwMCzpaEHeJZbA+PTb0qlV10msqKz8M2VhF77Uwb/2HIKknqI
X-Spam-Score: 0.0 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
X-Headers-End: 1T23vW-0006KS-CV
Subject: [Bitcoin-development] BIP 35: add mempool message
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Thu, 16 Aug 2012 17:32:11 -0000

Consensus was we should do a BIP for all P2P changes, so here it is...
 feedback requested.

https://en.bitcoin.it/wiki/BIP_0035

Abstract
-------------------------------------------
Make a network node's transaction memory pool accessible via a new
"mempool" message.  Extend the existing "getdata" message behavior to permit
accessing the transaction memory pool.


Motivation
-------------------------------------------
Several use cases make it desireable to expore a network node's transaction
memory pool:
* SPV clients, wishing to obtain zero-confirmation transactions sent or
  received.
* Miners, downloading existing network transactions after a restart.
* Remote network diagnostics.


Specification
-------------------------------------------
1) Upon receipt of a "mempool" message, the node will respond
   with an "inv" message containing MSG_TX hashes of all the
   transactions in the node's transaction memory pool.

   An "inv" message is always returned, even if empty.

2) The typical node behavior in response to an "inv" is "getdata".

   However, the reference Satoshi implementation ignores requests
   for transaction hashes outside that which is recently relayed.

   To support "mempool", an implementation must extend its "getdata"
   message support to querying the memory pool.

3) Feature discovery is enabled by checking two "version" message attributes:

   a) Protocol version >= 60002
   b) NODE_NETWORK bit set in nServices


Backwards compatibility
-------------------------------------------
Older clients remain 100% compatible and interoperable after this change.


Implementation
-------------------------------------------
See https://github.com/bitcoin/bitcoin/pull/1641

-- 
Jeff Garzik
exMULTI, Inc.
jgarzik@exmulti.com