Skip to content

Commit 3be9f6d

Browse files
Thomas Kerinafk11
authored andcommitted
Release notes v1.0.0
1 parent 6ee2b14 commit 3be9f6d

2 files changed

Lines changed: 125 additions & 8 deletions

File tree

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
v1.0.0
2+
=======
3+
4+
The v1.0.0 version is finally being released, marking the
5+
libraries departure from the 'in development' v0.0.x series.
6+
It probably should have happened a long time ago.
7+
8+
It includes a number of BC breaks in addition to the new PHP
9+
version requirement.
10+
11+
Compatibility Notice
12+
====================
13+
14+
## PHP version
15+
16+
v1.0.0 raises the minimum PHP version to 7.0. v0.0.35.x is
17+
the last series of versions to support PHP5.6 & HHVM.
18+
19+
## ext-secp256k1
20+
21+
The minimum version of `ext-secp256k1` is now v0.2.x, as the
22+
parameter order of some functions was changed to be more in
23+
line with upstream.
24+
25+
About https://github.com/Bit-Wasp/secp256k1-php:
26+
27+
The secp256k1 PHP extension exposes the libsecp256k1 C library
28+
used by Bitcoin Core for ECC operations. If the extension is
29+
installed, bitcoin-php will automatically use it as the default
30+
`EcAdapterInterface` as it massively improves performance.
31+
32+
## ext-bitcoinconsensus
33+
34+
The minimum version of `ext-bitcoinconsensus` is now v3.0.x.
35+
36+
About https://github.com/Bit-Wasp/bitcoinconsensus-php:
37+
38+
The bitcoinconsensus PHP extension exposes the minimal C library
39+
provided by bitcoin core in signed builds, and when compiling on
40+
your own machine. It's recommended to install this if you're doing
41+
anything related to signature verification with the library.
42+
43+
Notable Changes
44+
===============
45+
46+
Backwards compatibility breaks:
47+
48+
- #545 - KeyInterface::getAddress is removed, convert via KeyToScriptHelper
49+
- #587 - Fix DASH HD bytes
50+
- #581 - extracts script parsing logic for qualifying a spk, rs, ws against
51+
eachother.
52+
- #583 - `Network` implementation details have changed. Rewrote how various
53+
network attributes are stored in the class.
54+
- [173469f] Require Buffer in XXXSerializer::parse() methods, and extract
55+
'fromBuffer' for PrivateKeyFactory, PublicKeyFactory. 'fromHex' methods
56+
now exclusively accept hex strings.
57+
- #596 - AddressFactory extract major functions into AddressCreator instance
58+
and remove old class entirely.
59+
- #597 - MessageSigner: require NetworkInterface to be passed in order to
60+
sign and verify.
61+
- #600 - Make HierarchicalKey class immutable by removing 'toPublic', which
62+
would convert the object to the public key. 'withoutPrivateKey' returns
63+
a distinct object which is public.
64+
- #601 - OutputScriptFactory: remove payToAddress. This code was dangerous
65+
- #602 - Remove unused function ScriptCreator::pushSerializable
66+
- #619 - Use M addresses for litecoin prefixes
67+
- #604 - Remove BIP70 classes, code moved to an outside project (bip70/bip70-php)
68+
- #662 - Classes for KeyToScript conversions, and introduce one of these (mandatory)
69+
in HierarchicalKey.
70+
- #670 - Correct viacoin bech32 prefixes
71+
- #671 - PrivateKeyFactory, PublicKeyFactory, ElectrumKeyFactory,
72+
and HierarchicalKeyFactory are now class instances, as they
73+
should wrap an EcAdapterInterface. Static calls should be replaced
74+
with instance calls.
75+
- #694 - Fixes litecoin testnet prefix for P2SH addresses
76+
- #702 - Remove static bech32 classes in favor of `bitwasp/bech32`
77+
- #740 - HierarchicalKey: Don't automatically increment the index if
78+
an invalid key is produced (per the bip 1:2^128 chance of occurring)
79+
doing this can cause inconsistent derivations for multisig applications,
80+
make developers deal with it.
81+
- #743 - Bip39: ensure BIP compatibility by ensuring all mnemonics adhere to
82+
the BIP's standards.
83+
- #744 - Remove functions in HierarchicalKeySequences, and add more specific
84+
ones which perform strict validation.
85+
HierarchicalKey: removes deriveFromlist
86+
Rewrites MultisigHD to bring it in line with HierarchicalKey, so it
87+
also supports zpubs/Ypubs, etc, and generating addresses/script data.
88+
- #752 - Remove BitcoinCashChecker, and Uri::setAmountBtc now accepts a string
89+
not a float.
90+
- #755 - PrivateKeyFactory, remove old methods, add specific methods for
91+
working with compressed and uncompressed keys.
92+
- #760 - ProofOfWork bc break, don't throw exception on valid input (but invalid for bits). Rename `check` to `checkPow` in case devs miss it
93+
94+
General features:
95+
- #593 - Allow custom Checker implementations in Signer by introducing CheckerCreator
96+
- #671 - Add `ElectrumKey::withoutPrivateKey`
97+
- #673 - Deal with networks with different SIGNED_MESSAGE_PREFIX lengths, field is varint
98+
- #684 - Allow dealing with networks where addresses have multi-byte base58 prefixes
99+
- #523 - Optional support for 'zero' values in multsignature scriptSigs and witnesses
100+
indicating signer index. (Signer::padUnsignedMultisigs($setting))
101+
- #525 - An extremely experimental and not perfect feature: support for complicated
102+
output script types, with limited support for existing script templates within
103+
arbitrarily nested IF/NOTIF opcodes. (Signer::allowComplexScripts($setting))
104+
- #556 - don't touch branches the signer didn't look at
105+
106+
Testing:
107+
- #745 - Adopted phpstan for CI builds, will slowly work on this over time
108+
- #750 - Migrate to newer scrutinizer analysis tool for PHP7+
109+
110+
Credits
111+
=======
112+
113+
A special thanks to everyone who contributed directly to the release:
114+
115+
- afk11
116+
- DaShak
117+
- evadogstar
118+
- hauptmedia
119+
- Max
120+
- murich
121+
- romanornr
122+
- rubensayshi
123+
- samnela
124+
- Vasiliy-Bondarenko
125+

release-notes.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)