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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
|
# python-bitcoinlib release notes
## v0.12.2
* Fixed RPC cookie location for testnet
## v0.12.1
* Added `calc_weight()` method.
* (Hopefully) resolved failure to find `libeay32` on Windows.
## v0.12.0
* `CECKey` now rejects secrets that aren't exactly 32 bytes
* Now compatible with OpenSSL v3; broke compatibility with certain script edge
cases around malformed signatures. This is acceptable because
python-bitcoinlib doesn't claim to have consensus compatibility and no-one
should use it for script/tx validation.
## v0.11.2
* Fixed one remaining use of OpenSSL for RIPEMD-160
## v0.11.1
* Pure-python RIPEMD-160, for newer versions of OpenSSL without RIPEMD-160
support.
* Signet support
## v0.11.0
* Bech32 implementation
* Segwit implementation (for P2WSH and P2WPKH transactions) and examples
* Use libsecp256k1 for signing
* Implement OP_CHECKSEQUENCEVERIFY
New maintainer: Bryan Bishop <kanzure@gmail.com>
## v0.10.2
Note: this will be the last release of python-bitcoinlib with Python 2.7
compatibility.
* New RPC `generatetoaddress(self,numblocks,addr)`.
* Fixed Python 2.7 incompatibility.
* Various OpenSSL fixes, including a memory leak.
## v0.10.1
Identical in every way to v0.10.0, but re-uploaded under a new version to fix a
PyPi issue.
## v0.10.0
Minor breaking change: RPC port for regtest updated to the new v0.16.0 default.
Other changes:
* Now looks for `.cookie` files in the datadir, if specified.
* Authentication in a RPC `service_url` is now parsed.
* Implemented bip-0037 version message.
* `contrib/verify-commits/` removed for now due to breakage.
## v0.9.0
Now supports segwit, which breaks the API in minor ways from v0.8.0. This
version introduces lots of new API functionality related to this, such as the
new `CScriptWitness`, `CTxInWitness`, `CTxWitness`, new segwit-specific logic
in `SignatureHash()` etc.
## v0.8.0
Major breaking API change!
While this interim release doesn't by itself include segwit support, it does
change the name of the `CTransaction/CMutableTransaction` method `GetHash()` to
`GetTxid()` to prepare for a future segwit-enabled release. Incorrect calls to
`GetHash()` will now raise a `AttributeError` exception with an explanation.
Since this release doesn't yet include segwit support, you will need to set the
Bitcoin Core `-rpcserialversion=0` option, either as a command line argument,
or in your `bitcoin.conf` file. Otherwise the RPC interface will return
segwit-serialized transactions that this release's RPC support doesn't
understand.
Other changes:
* Cookie file RPC authentication is now supported.
* `msg_header` now correctly uses `CBlockHeader` rather than `CBlock`.
* RPC `getbalance` now supports `include_watchonly`
* RPC `unlockwallet` is now supported
## v0.7.0
Breaking API changes:
* The 'cooked' CScript iterator now returns `OP_0` for the empty binary string
rather than `b''`
* The alias `JSONRPCException = JSONRPCError` has been removed. This alias was
added for compatibility with v0.4.0 of python-bitcoinlib.
* Where appropriate, `RPC_INVALID_ADDRESS_OR_KEY` errors are now caught
properly, which means that rather than raising `IndexError`, RPC commands
such as `getblock` may raise `JSONRPCError` instead. For instance during
initial startup previously python-bitcoinlib would incorrectly raise
`IndexError` rather than letting the callee know that RPC was unusable. Along
those lines, `JSONRPCError` subclasses have been added for some (but not
all!) of the types of RPC errors Bitcoin Core returns.
Bugfixes:
* Fixed a spurious `AttributeError` when `bitcoin.rpc.Proxy()` fails.
## v0.6.1
New features:
* getblockheader RPC call now supports the verbose option; there's no other way
to get the block height, among other things, from the RPC interface.
* subtoaddress and sendmany RPC calls now support comment and
subtractfeefromamount arguments.
## v0.6.0
Breaking API changes:
* RPC over SSL support removed to match Bitcoin Core's removal of RPC SSL
support in v0.12.0 If you need this, use an alternative such as a stunnel or
a SSH tunnel.
* Removed SCRIPT_VERIFY constants ``bitcoin.core.script``, leaving just the
constants in ``bitcoin.core.scripteval``; being singletons the redundant
constants were broken anyway.
* SCRIPT_VERIFY_EVEN_S renamed to SCRIPT_VERIFY_LOW_S to match Bitcoin Core's naming
* SCRIPT_VERIFY_NOCACHE removed as Bitcoin Core no longer has it (and we never
did anything with it anyway)
## v0.5.1
Various small bugfixes; see git history.
New features:
* New RPC calls: fundrawtransaction, generate, getblockheader
* OP_CHECKLOCKTIMEVERIFY opcode constant
## v0.5.0
Major fix: Fixed OpenSSL related crashes on OSX and Arch Linux. Big thanks to
everyone who helped fix this!
Breaking API changes:
* Proxy no longer has ``__getattr__`` to support arbitrary methods. Use
RawProxy or Proxy.call instead. This allows new wrappers to be added safely.
See docstrings for details.
New features:
* New RPC calls: getbestblockhash, getblockcount, getmininginfo
* Signing and verification of Bitcoin Core compatible messages. (w/ pubkey recovery)
* Tox tests
* Sphinx docs
Notable bugfixes:
* getinfo() now works where disablewallet=1
## v0.4.0
Major fix: OpenSSL 1.0.1k rejects non-canonical DER signatures, which Bitcoin
Core does not, so we now canonicalize signatures prior to passing them to
OpenSSL. Secondly we now only generate low-S DER signatures as per BIP62.
API changes that might break compatibility with existing code:
* MAX_MONEY is now a core chain parameter
* MainParams now inherits from CoreMainParams rather than CoreChainParams
* str(<COutPoint>) now returns hash:n format; previously was same as repr()
* RawProxy() no longer has _connection parameter
Notable bugfixes:
* MsgSerializable.to_bytes() no longer clobbers testnet params
* HTTPS RPC connections now use port 443 as default
* No longer assumes bitcoin.conf specifes rpcuser
New features:
* New RPC calls: dumpprivkey, importaddress
* Added P2P support for msg_notfound and msg_reject
* Added support for IPv6 addr messages
## v0.3.0
Major change: cleaned up what symbols are exported by modules. \_\_all\_\_ is now
used extensively, which may break some applications that were not importing the
right modules. Along those lines some implementation details like the ssl
attribute of the bitcoin.core.key module, and the entire bitcoin.core.bignum
module, are no longer part of the public API. This should not affect too many
users, but it will break some code.
Other notable changes:
* New getreceivedbyaddress RPC call.
* Fixed getbalance RPC call when wallet is configured off.
* Various code cleanups and minor bug fixes.
## v0.2.1
* Improve bitcoin address handling. P2SH and P2PKH addresses now get their own
classes - P2SHBitcoinAddress and P2PKHBitcoinAddress respectively - and P2PKH
can now convert scriptPubKeys containing non-canonical pushes as well as bare
checksig to addresses.
* .deserialize() methods now fail if there is extra data left over.
* Various other small bugfixes.
* License is now LGPL v3 or later.
## v0.2.0
Major change: CTransaction, CBlock, etc. now come in immutable (default) and
mutable forms. In most cases mutable and immutable can be used interchangeably;
when that is not possible methods are provided to create new (im)mutable
objects from (im)mutable ones efficiently.
Other changes:
* New BIP70 payment protocol example. (Derren Desouza)
* Rework of message serialization. Note that this may not represent the final
form of P2P support, which is still in flux. (Florian Schmaus)
* Various bugfixes
Finally starting this release, git tags will be of the form
'python-bitcoinlib-(version)', replacing the less specific '(version)' form
previously used.
|