Skip to content

Commit 153fc50

Browse files
committed
Merge branch 'master' into add-bip40
2 parents 84f8519 + feacf8f commit 153fc50

File tree

82 files changed

+4378
-1069
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4378
-1069
lines changed

.github/workflows/github-action-checks.yml

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ jobs:
55
Link-Format-Checks:
66
runs-on: ubuntu-latest
77
steps:
8-
- uses: actions/checkout@v3
8+
- uses: actions/checkout@v4
99
- run: scripts/link-format-chk.sh
1010
Build-Table-Checks:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v4
1414
- run: scripts/buildtable.pl >/tmp/table.mediawiki || exit 1
1515
Diff-Checks:
16+
name: "Diff Checks (fails until number assignment)"
1617
runs-on: ubuntu-latest
1718
steps:
18-
- uses: actions/checkout@v3
19+
- uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 2
1922
- run: scripts/diffcheck.sh

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
bip-0174/coinjoin-workflow.aux
2+
bip-0174/coinjoin-workflow.log
3+
bip-0174/coinjoin-workflow.pdf
4+
bip-0174/multisig-workflow.aux
5+
bip-0174/multisig-workflow.log
6+
bip-0174/multisig-workflow.pdf

README.mediawiki

+24-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
People wishing to submit BIPs, first should propose their idea or document to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [email protected]] mailing list (do <em>not</em> assign a number - read <a href="bip-0002.mediawiki">BIP 2</a> for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here.
1+
People wishing to submit BIPs, first should propose their idea or document to the [https://groups.google.com/g/bitcoindev [email protected]] mailing list (do <em>not</em> assign a number - read <a href="bip-0002.mediawiki">BIP 2</a> for the full process). After discussion, please open a PR. After copy-editing and acceptance, it will be published here.
22

33
We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.
44

@@ -235,29 +235,29 @@ Those proposing changes should consider that ultimately consent may rest with th
235235
| Applications
236236
| Purpose Field for Deterministic Wallets
237237
| Marek Palatinus, Pavol Rusnak
238-
| Informational
238+
| Standard
239239
| Final
240-
|- style="background-color: #ffffcf"
240+
|- style="background-color: #cfffcf"
241241
| [[bip-0044.mediawiki|44]]
242242
| Applications
243243
| Multi-Account Hierarchy for Deterministic Wallets
244244
| Marek Palatinus, Pavol Rusnak
245245
| Standard
246-
| Proposed
246+
| Final
247247
|- style="background-color: #ffffcf"
248248
| [[bip-0045.mediawiki|45]]
249249
| Applications
250250
| Structure for Deterministic P2SH Multisignature Wallets
251251
| Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia
252252
| Standard
253253
| Proposed
254-
|-
254+
|- style="background-color: #cfffcf"
255255
| [[bip-0047.mediawiki|47]]
256256
| Applications
257257
| Reusable Payment Codes for Hierarchical Deterministic Wallets
258258
| Justus Ranvier
259259
| Informational
260-
| Draft
260+
| Final
261261
|- style="background-color: #ffffcf"
262262
| [[bip-0048.mediawiki|48]]
263263
| Applications
@@ -270,7 +270,7 @@ Those proposing changes should consider that ultimately consent may rest with th
270270
| Applications
271271
| Derivation scheme for P2WPKH-nested-in-P2SH based accounts
272272
| Daniel Weigl
273-
| Informational
273+
| Standard
274274
| Final
275275
|- style="background-color: #cfffcf"
276276
| [[bip-0050.mediawiki|50]]
@@ -439,7 +439,7 @@ Those proposing changes should consider that ultimately consent may rest with th
439439
| Applications
440440
| Derivation scheme for P2WPKH based accounts
441441
| Pavol Rusnak
442-
| Informational
442+
| Standard
443443
| Final
444444
|-
445445
| [[bip-0085.mediawiki|85]]
@@ -714,13 +714,13 @@ Those proposing changes should consider that ultimately consent may rest with th
714714
| Andy Chase
715715
| Process
716716
| Withdrawn
717-
|-
717+
|- style="background-color: #cfffcf"
718718
| [[bip-0133.mediawiki|133]]
719719
| Peer Services
720720
| feefilter message
721721
| Alex Morcos
722722
| Standard
723-
| Draft
723+
| Final
724724
|- style="background-color: #ffcfcf"
725725
| [[bip-0134.mediawiki|134]]
726726
| Consensus (hard fork)
@@ -1030,6 +1030,13 @@ Those proposing changes should consider that ultimately consent may rest with th
10301030
| Standard
10311031
| Draft
10321032
|-
1033+
| [[bip-0331.mediawiki|331]]
1034+
| Peer Services
1035+
| Ancestor Package Relay
1036+
| Gloria Zhao
1037+
| Standard
1038+
| Draft
1039+
|-
10331040
| [[bip-0338.mediawiki|338]]
10341041
| Peer Services
10351042
| Disable transaction relay message
@@ -1078,6 +1085,13 @@ Those proposing changes should consider that ultimately consent may rest with th
10781085
| James O'Beirne, Greg Sanders, Anthony Towns
10791086
| Standard
10801087
| Draft
1088+
|-
1089+
| [[bip-0347.mediawiki|347]]
1090+
| Consensus (soft fork)
1091+
| OP_CAT in Tapscript
1092+
| Ethan Heilman, Armin Sabouri
1093+
| Standard
1094+
| Draft
10811095
|- style="background-color: #cfffcf"
10821096
| [[bip-0350.mediawiki|350]]
10831097
| Applications

bip-0002.mediawiki

+9-4
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ The BIP process begins with a new idea for Bitcoin. Each potential BIP must have
3232
Small enhancements or patches to a particular piece of software often don't require standardisation between multiple projects; these don't need a BIP and should be injected into the relevant project-specific development workflow with a patch submission to the applicable issue tracker.
3333
Additionally, many ideas have been brought forward for changing Bitcoin that have been rejected for various reasons.
3434
The first step should be to search past discussions to see if an idea has been considered before, and if so, what issues arose in its progression.
35-
After investigating past work, the best way to proceed is by posting about the new idea to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Bitcoin development mailing list].
35+
After investigating past work, the best way to proceed is by posting about the new idea to the [https://groups.google.com/g/bitcoindev Bitcoin development mailing list].
3636

3737
Vetting an idea publicly before going as far as writing a BIP is meant to save both the potential author and the wider community time.
3838
Asking the Bitcoin community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the internet does not always do the trick).
3939
It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Bitcoin is used.
4040

41-
Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Bitcoin development mailing list].
41+
Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to the [https://groups.google.com/g/bitcoindev Bitcoin development mailing list].
4242
This gives the author a chance to flesh out the draft BIP to make it properly formatted, of high quality, and to address additional concerns about the proposal.
4343
Following a discussion, the proposal should be submitted to the [https://github.com/bitcoin/bips BIPs git repository] as a pull request.
4444
This draft must be written in BIP style as described below, and named with an alias such as "bip-johndoe-infinitebitcoins" until an editor has assigned it a BIP number (authors MUST NOT self-assign BIP numbers).
@@ -67,8 +67,12 @@ If you are interested in assuming ownership of a BIP, send a message asking to t
6767

6868
The current BIP editors are:
6969

70+
* Bryan Bishop ([[mailto:[email protected]|[email protected]]])
71+
* Jon Atack ([[mailto:[email protected]|[email protected]]])
7072
* Luke Dashjr ([[mailto:[email protected]|[email protected]]])
71-
* Kalle Alm ([[mailto:[email protected]|[email protected]]])
73+
* Mark "Murch" Erhardt ([[mailto:[email protected]|[email protected]]])
74+
* Olaoluwa Osuntokun ([[mailto:[email protected]|[email protected]]])
75+
* Ruben Somsen ([[mailto:[email protected]|[email protected]]])
7276
7377
===BIP Editor Responsibilities & Workflow===
7478

@@ -98,6 +102,8 @@ The BIP editor will:
98102
99103
The BIP editors are intended to fulfill administrative and editorial responsibilities. The BIP editors monitor BIP changes, and update BIP headers as appropriate.
100104

105+
BIP editors may also, at their option, unilaterally make and merge strictly-editorial changes to BIPs, such as correcting misspellings, fixing broken links, etc.
106+
101107
==BIP format and structure==
102108

103109
===Specification===
@@ -409,7 +415,6 @@ Why is Public Domain no longer acceptable for new BIPs?
409415
* Non-image auxiliary files are permitted in the bip-XXXX subdirectory.
410416
* Email addresses are now required for authors.
411417
* The Post-History header may be provided as a link instead of a simple date.
412-
* Markdown format is no longer permitted for BIPs.
413418
* The Resolution header has been dropped, as it is not applicable to a decentralised system where no authority exists to make final decisions.
414419
415420
==See Also==

bip-0009/states.gv

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* There are many ways to compile this, but one of them is:
2+
*
3+
* $ dot -Tpng states.gv -o states.png
4+
*/
5+
digraph {
6+
/* States. */
7+
DEFINED; FAILED; STARTED; LOCKED_IN; ACTIVE;
8+
9+
/* Relationships between states, labeled where applicable. */
10+
DEFINED -> DEFINED;
11+
DEFINED -> FAILED [label = "timeout ≤ MTP"];
12+
DEFINED -> STARTED [label = "starttime ≤ MTP < timeout"];
13+
FAILED -> FAILED;
14+
STARTED -> STARTED;
15+
STARTED -> FAILED [label = "timeout ≤ MTP"];
16+
STARTED -> LOCKED_IN [label = "(MTP < timeout) AND (threshold reached)"];
17+
LOCKED_IN -> ACTIVE [label = "Always"];
18+
ACTIVE -> ACTIVE;
19+
20+
/* Visualization hack to unclutter output. */
21+
nodesep = 1.2;
22+
}

bip-0009/states.png

19.1 KB
Loading

bip-0010.mediawiki

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ The following is an example TxDP from Armory, produced while running on the test
9393

9494
In this transaction, there are two inputs, one of 150 BTC and the other of 12 BTC. This transaction combines 162 BTC to create two outputs, one of 160 BTC, one 1.9995 BTC, and a tx fee of 0.0005. In this TxDP, both inputs have been signed, and thus could broadcast immediately.
9595

96-
The style of communication is taken directly from PGP/GPG, which uses blocks of ASCII like this to communicate encrypted messages and signatures. This serialization is compact, and will be interpretted the same in all character encodings. It can be copied inline into an email, or saved in a text file. The advantage over the analogous PGP encoding is that there are some human readable elements to it, for users that wish to examine the TxDP packet manually, instead of requiring a program to parse the core elements of the TxDP.
96+
The style of communication is taken directly from PGP/GPG, which uses blocks of ASCII like this to communicate encrypted messages and signatures. This serialization is compact, and will be interpreted the same in all character encodings. It can be copied inline into an email, or saved in a text file. The advantage over the analogous PGP encoding is that there are some human readable elements to it, for users that wish to examine the TxDP packet manually, instead of requiring a program to parse the core elements of the TxDP.
9797

9898
A party receiving this TxDP can simply add their signature to the appropriate _TXINPUT_ line. If that is the last signature required, they can broadcast it themselves. Any software that implements this standard should be able to combine multiple TxDPs into a single TxDP. However, even without the programmatic support, a user could manually combine them by copying the appropriate _TXSIGS_ lines between serializations, though it is not the recommended method for combining TxDPs.
9999

100100
== Reference Implementation ==
101101

102-
This proposal was implemented and tested in the older versions of ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction). Implementation can be found in https://github.com/etotheipi/BitcoinArmory/blob/v0.91-beta/armoryengine/Transaction.py under the class PyTxDistProposal. However, as of verion 0.92 released in July 2014, Armory no longer uses this proposal for offline wallet transaction signing and has moved on to a new format.
102+
This proposal was implemented and tested in the older versions of ''Armory'' Bitcoin software for use in offline-wallet transaction signing (as a 1-of-1 transaction). Implementation can be found in https://github.com/etotheipi/BitcoinArmory/blob/v0.91-beta/armoryengine/Transaction.py under the class PyTxDistProposal. However, as of version 0.92 released in July 2014, Armory no longer uses this proposal for offline wallet transaction signing and has moved on to a new format.

bip-0014.mediawiki

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Version bumping can also introduce incompatibilities and fracture the network. I
2828

2929
By using a protocol version, we set all implementations on the network to a common standard. Everybody is able to agree within their confines what is protocol and what is implementation-dependent. A user agent string is offered as a 'vanity-plate' for clients to distinguish themselves in the network.
3030

31-
Separation of the network protocol from the implemention, and forming development of said protocol by means of a mutual consensus among participants, has the democratic disadvantage when agreement is hard to reach on contentious issues. To mitigate this issue, strong communication channels and fast release schedules are needed, and are outside the scope of this document (concerning a process-BIP type).
31+
Separation of the network protocol from the implementation, and forming development of said protocol by means of a mutual consensus among participants, has the democratic disadvantage when agreement is hard to reach on contentious issues. To mitigate this issue, strong communication channels and fast release schedules are needed, and are outside the scope of this document (concerning a process-BIP type).
3232

3333
User agents provide extra tracking information that is useful for keeping tabs on network data such as client implementations used or common architectures/operating-systems. In the rare case they may even provide an emergency method of shunning faulty clients that threaten network health- although this is strongly unrecommended and extremely bad form. The user agent does not provide a method for clients to work around and behave differently to different implementations, as this will lead to protocol fracturing.
3434

bip-0015.mediawiki

+2-2
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ By using DNS lookups, the MITM problem with IP transactions could be mitigated b
348348

349349
=== Namecoin ID ===
350350

351-
This proposal uses the Namecoin blockchain to associate an alias with a bitcoin address. Bitcoin queries a namecoin node. This retreives the structured data containing the bitcoin address(es) associated with this alias.
351+
This proposal uses the Namecoin blockchain to associate an alias with a bitcoin address. Bitcoin queries a namecoin node. This retrieves the structured data containing the bitcoin address(es) associated with this alias.
352352

353353
Using a decentralised domain name system like Namecoin, means no external server or entity needs to be trusted unlike the other proposals listed here. This indicates a system with the advantage of having a high availability and ease of entry (no restrictions for users to create aliases).
354354

@@ -401,4 +401,4 @@ Any text can be put into the brackets, allowing merchants to adapt it to all the
401401
New features can be added later to support uncovered cases.
402402

403403

404-
See the specification of [http://dot-bit.org/Namespace:Identity Namecoin ID] for more informations.
404+
See the specification of [http://dot-bit.org/Namespace:Identity Namecoin ID] for more information.

bip-0021.mediawiki

+3-8
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Elements of the query component may contain characters outside the valid range.
3737

3838
=== ABNF grammar ===
3939

40-
(See also [[#Simpler syntax|a simpler representation of syntax]])
40+
(See also [[#simpler-syntax|a simpler representation of syntax]])
4141

4242
bitcoinurn = "bitcoin:" bitcoinaddress [ "?" bitcoinparams ]
4343
bitcoinaddress = *base58
@@ -120,11 +120,6 @@ Some future version that has variables which are (currently) not understood but
120120

121121
Characters must be URI encoded properly.
122122

123-
== Reference Implementations ==
124-
=== Bitcoin clients ===
125-
* Bitcoin-Qt supports the old version of Bitcoin URIs (ie without the req- prefix), with Windows and KDE integration as of commit 70f55355e29c8e45b607e782c5d76609d23cc858.
123+
== Reference Implementation ==
126124

127-
=== Libraries ===
128-
* Javascript - https://github.com/bitcoinjs/bip21
129-
* Java - https://github.com/SandroMachado/BitcoinPaymentURI
130-
* Swift - https://github.com/SandroMachado/BitcoinPaymentURISwift
125+
Bitcoin-Qt supports the old version of Bitcoin URIs (ie without the req- prefix), with Windows and KDE integration as of commit 70f55355e29c8e45b607e782c5d76609d23cc858.

0 commit comments

Comments
 (0)