Skip to content

Commit 787ed87

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 32d6ee2 + 3a75853 commit 787ed87

16 files changed

+3060
-505
lines changed

README.mediawiki

Lines changed: 20 additions & 6 deletions
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. 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://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.
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

@@ -392,7 +392,7 @@ Those proposing changes should consider that ultimately consent may rest with th
392392
| Nicolas Dorier
393393
| Standard
394394
| Draft
395-
|- style="background-color: #ffffcf"
395+
|- style="background-color: #ffcfcf"
396396
| [[bip-0079.mediawiki|79]]
397397
| Applications
398398
| Bustapay :: a practical coinjoin protocol
@@ -847,20 +847,20 @@ Those proposing changes should consider that ultimately consent may rest with th
847847
| Pieter Wuille, Greg Maxwell
848848
| Informational
849849
| Final
850-
|- style="background-color: #ffffcf"
850+
|- style="background-color: #cfffcf"
851851
| [[bip-0174.mediawiki|174]]
852852
| Applications
853853
| Partially Signed Bitcoin Transaction Format
854854
| Andrew Chow
855855
| Standard
856-
| Proposed
857-
|-
856+
| Final
857+
|- style="background-color: #ffcfcf"
858858
| [[bip-0175.mediawiki|175]]
859859
| Applications
860860
| Pay to Contract Protocol
861861
| Omar Shibli, Nicholas Gregory
862862
| Informational
863-
| Draft
863+
| Rejected
864864
|-
865865
| [[bip-0176.mediawiki|176]]
866866
|
@@ -953,6 +953,13 @@ Those proposing changes should consider that ultimately consent may rest with th
953953
| Standard
954954
| Draft
955955
|-
956+
| [[bip-0338.mediawiki|338]]
957+
| Peer Services
958+
| Disable transaction relay message
959+
| Suhas Daftuar
960+
| Standard
961+
| Draft
962+
|-
956963
| [[bip-0339.mediawiki|339]]
957964
| Peer Services
958965
| WTXID-based transaction relay
@@ -980,6 +987,13 @@ Those proposing changes should consider that ultimately consent may rest with th
980987
| Pieter Wuille, Jonas Nick, Anthony Towns
981988
| Standard
982989
| Draft
990+
|-
991+
| [[bip-0350.mediawiki|350]]
992+
| Applications
993+
| Bech32m format for v1+ witness addresses
994+
| Pieter Wuille
995+
| Standard
996+
| Draft
983997
|}
984998

985999
<!-- IMPORTANT! See the instructions at the top of this page, do NOT JUST add BIPs here! -->

bip-0008.mediawiki

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,13 @@ for the purposes of this proposal, and support two future upgrades for different
7979
When a block nVersion does not have top bits 001, it is treated as if all
8080
bits are 0 for the purposes of deployments.
8181

82+
Miners should continue setting the bit in LOCKED_IN phase so uptake is visible, though this has no effect on consensus rules.
83+
8284
===New consensus rules===
8385

8486
The new consensus rules for each soft fork are enforced for each block that has ACTIVE state.
8587

86-
During the MUST_SIGNAL and LOCKED_IN phases, blocks that fail to signal are invalid.
87-
For flexibility, during the LOCKED_IN phase only, this rule does NOT require the top 3 bits to be set any particular way.
88+
During the MUST_SIGNAL phase, if '''(2016 - threshold)''' blocks in the retarget period have already failed to signal, any further blocks that fail to signal are invalid.
8889

8990
===State transitions===
9091

@@ -176,16 +177,23 @@ block, indexed by its parent.
176177

177178
===Mandatory signalling===
178179

179-
Blocks received while in the MUST_SIGNAL and LOCKED_IN phases must be checked to ensure that they signal. For example:
180+
Blocks received while in the MUST_SIGNAL phase must be checked to ensure that they signal as required. For example:
180181

181182
if (GetStateForBlock(block) == MUST_SIGNAL) {
182-
if ((block.nVersion & 0xE0000000) != 0x20000000 || ((block.nVersion >> bit) & 1) != 1) {
183-
return state.Invalid(BlockValidationResult::RECENT_CONSENSUS_CHANGE, "bad-version-bip8-must-signal");
184-
}
185-
}
186-
if (GetStateForBlock(block) == LOCKED_IN) {
187-
if (((block.nVersion >> bit) & 1) != 1) {
188-
return state.Invalid(BlockValidationResult::RECENT_CONSENSUS_CHANGE, "bad-version-bip8-locked-in");
183+
int nonsignal = 0;
184+
walk = block;
185+
while (true) {
186+
if ((walk.nVersion & 0xE0000000) != 0x20000000 || ((walk.nVersion >> bit) & 1) != 1) {
187+
++nonsignal;
188+
if (nonsignal > 2016 - threshold) {
189+
return state.Invalid(BlockValidationResult::RECENT_CONSENSUS_CHANGE, "bad-version-bip8-must-signal");
190+
}
191+
}
192+
if (walk.nHeight % 2016 == 0) {
193+
// checked every block in this retarget period
194+
break;
195+
}
196+
walk = walk.parent;
189197
}
190198
}
191199
@@ -226,7 +234,7 @@ The template Object is also extended:
226234
The "version" key of the template is retained, and used to indicate the server's preference of deployments.
227235
If versionbits is being used, "version" MUST be within the versionbits range of [0x20000000...0x3FFFFFFF].
228236
Miners MAY clear or set bits in the block version WITHOUT any special "mutable" key, provided they are listed among the template's "vbavailable" and (when clearing is desired) NOT included as a bit in "vbrequired".
229-
Servers MUST set bits in "vbrequired" for deployments in MUST_SIGNAL and LOCKED_IN states, to ensure blocks produced are valid.
237+
Servers MUST set bits in "vbrequired" for deployments in MUST_SIGNAL state, to ensure blocks produced are valid.
230238

231239
Softfork deployment names listed in "rules" or as keys in "vbavailable" may be prefixed by a '!' character.
232240
Without this prefix, GBT clients may assume the rule will not impact usage of the template as-is; typical examples of this would be when previously valid transactions cease to be valid, such as BIPs 16, 65, 66, 68, 112, and 113.

bip-0034.mediawiki

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Bitcoin blocks and transactions are versioned binary structures. Both currently
2222
==Specification==
2323

2424
# Treat transactions with a version greater than 1 as non-standard (official Satoshi client will not mine or relay them).
25-
# Add height as the first item in the coinbase transaction's scriptSig, and increase block version to 2. The format of the height is "serialized CScript" -- first byte is number of bytes in the number (will be 0x03 on main net for the next 150 or so years with 2<sup>23</sup>-1 blocks), following bytes are little-endian representation of the number (including a sign bit). Height is the height of the mined block in the block chain, where the genesis block is height zero (0).
25+
# Add height as the first item in the coinbase transaction's scriptSig, and increase block version to 2. The format of the height is "minimally encoded serialized CScript" -- first byte is number of bytes in the number (will be 0x03 on main net for the next 150 or so years with 2<sup>23</sup>-1 blocks), following bytes are little-endian representation of the number (including a sign bit). Height is the height of the mined block in the block chain, where the genesis block is height zero (0).
2626
# 75% rule: If 750 of the last 1,000 blocks are version 2 or greater, reject invalid version 2 blocks. (testnet3: 51 of last 100)
2727
# 95% rule ("Point of no return"): If 950 of the last 1,000 blocks are version 2 or greater, reject all version 1 blocks. (testnet3: 75 of last 100)
2828

bip-0039.mediawiki

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,14 @@ will make the desired wallet available.
113113

114114
==Wordlists==
115115

116-
* [[bip-0039/bip-0039-wordlists.md|Moved to separate document]]
116+
Since the vast majority of BIP39 wallets supports only the English wordlist,
117+
it is '''strongly discouraged''' to use non-English wordlists for generating
118+
the mnemonic sentences.
119+
120+
If you still feel your application really needs to use a localized wordlist,
121+
use one of the following instead of inventing your own.
122+
123+
* [[bip-0039/bip-0039-wordlists.md|Wordlists]]
117124
118125
==Test vectors==
119126

@@ -137,6 +144,9 @@ http://github.com/trezor/python-mnemonic
137144
Go:
138145
* https://github.com/tyler-smith/go-bip39
139146
147+
Python:
148+
* https://github.com/meherett/python-hdwallet
149+
140150
Elixir:
141151
* https://github.com/aerosol/mnemo
142152
@@ -164,6 +174,7 @@ Ruby:
164174
165175
Rust:
166176
* https://github.com/maciejhirsz/tiny-bip39/
177+
* https://github.com/koushiro/bip0039-rs
167178
168179
Swift:
169180
* https://github.com/CikeQiu/CKMnemonic

bip-0039/bip-0039-wordlists.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
* [French](french.txt)
1010
* [Italian](italian.txt)
1111
* [Czech](czech.txt)
12+
* [Portuguese](portuguese.txt)
1213

1314
## Wordlists (Special Considerations)
1415

@@ -98,3 +99,19 @@ Words chosen using the following rules:
9899
6. No very similar words with 1 letter of difference.
99100
7. Words are sorting according English alphabet (Czech sorting has difference in "ch").
100101
8. No words already used in other language mnemonic sets (english, italian, french, spanish). Letters with diacritical marks from these sets are counted as analogous letters without diacritical marks.
102+
103+
### Portuguese
104+
105+
Credits: @alegotardo @bitmover-studio @brenorb @kuthullu @ninjastic @sabotag3x @Trimegistus
106+
107+
1. Words can be uniquely determined typing the first 4 characters.
108+
2. No accents or special characters.
109+
3. No complex verb forms.
110+
4. No plural words, unless there's no singular form.
111+
5. No words with double spelling.
112+
6. No words with the exact sound of another word with different spelling.
113+
7. No offensive words.
114+
8. No words already used in other language mnemonic sets.
115+
9. The words which have not the same spelling in Brazil and in Portugal are excluded.
116+
10. No words that remind negative/sad/bad things.
117+
11. No very similar words with 1 letter of difference.

0 commit comments

Comments
 (0)