You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/release-notes.md
+111Lines changed: 111 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,6 +59,20 @@ support versions of macOS older than 10.10.
59
59
Notable changes
60
60
===============
61
61
62
+
Changed command-line options
63
+
----------------------------
64
+
65
+
-`-includeconf=<file>` can be used to include additional configuration files.
66
+
Only works inside the `bitcoin.conf` file, not inside included files or from
67
+
command-line. Multiple files may be included. Can be disabled from command-
68
+
line via `-noincludeconf`. Note that multi-argument commands like
69
+
`-includeconf` will override preceding `-noincludeconf`, i.e.
70
+
71
+
noincludeconf=1
72
+
includeconf=relative.conf
73
+
74
+
as bitcoin.conf will still include `relative.conf`.
75
+
62
76
GUI changes
63
77
-----------
64
78
@@ -106,6 +120,83 @@ For backwards compatibility, wallet paths that are names of existing data files
106
120
in the `-walletdir` directory will continue to be accepted and interpreted the
107
121
same as before.
108
122
123
+
Dynamic loading and creation of wallets
124
+
---------------------------------------
125
+
126
+
Previously, wallets could only be loaded or created at startup, by specifying `-wallet` parameters on the command line or in the bitcoin.conf file. It is now possible to load, create and unload wallets dynamically at runtime:
127
+
128
+
- Existing wallets can be loaded by calling the `loadwallet` RPC. The wallet can be specified as file/directory basename (which must be located in the `walletdir` directory), or as an absolute path to a file/directory.
129
+
- New wallets can be created (and loaded) by calling the `createwallet` RPC. The provided name must not match a wallet file in the `walletdir` directory or the name of a wallet that is currently loaded.
130
+
- Loaded wallets can be unloaded by calling the `unloadwallet` RPC.
131
+
132
+
This feature is currently only available through the RPC interface.
133
+
134
+
Coin selection
135
+
--------------
136
+
- A new `-avoidpartialspends` flag has been added (default=false). If enabled, the wallet will try to spend UTXO's that point at the same destination
137
+
together. This is a privacy increase, as there will no longer be cases where a wallet will inadvertently spend only parts of the coins sent to
138
+
the same address (note that if someone were to send coins to that address after it was used, those coins will still be included in future
139
+
coin selections).
140
+
141
+
Configuration sections for testnet and regtest
142
+
----------------------------------------------
143
+
144
+
It is now possible for a single configuration file to set different
145
+
options for different networks. This is done by using sections or by
146
+
prefixing the option with the network, such as:
147
+
148
+
main.uacomment=bitcoin
149
+
test.uacomment=bitcoin-testnet
150
+
regtest.uacomment=regtest
151
+
[main]
152
+
mempoolsize=300
153
+
[test]
154
+
mempoolsize=100
155
+
[regtest]
156
+
mempoolsize=20
157
+
158
+
The `addnode=`, `connect=`, `port=`, `bind=`, `rpcport=`, `rpcbind=`
159
+
and `wallet=` options will only apply to mainnet when specified in the
160
+
configuration file, unless a network is specified.
161
+
162
+
'label' and 'account' APIs for wallet
163
+
-------------------------------------
164
+
165
+
A new 'label' API has been introduced for the wallet. This is intended as a
166
+
replacement for the deprecated 'account' API. The 'account' can continue to
167
+
be used in V0.17 by starting bitcoind with the '-deprecatedrpc=accounts'
168
+
argument, and will be fully removed in V0.18.
169
+
170
+
The label RPC methods mirror the account functionality, with the following functional differences:
171
+
172
+
- Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI.
173
+
- Labels can be deleted by reassigning all addresses using the `setlabel` RPC method.
174
+
- There isn't support for sending transactions _from_ a label, or for determining which label a transaction was sent from.
|`getaccount`|`getaddressinfo`|`getaddressinfo` returns a json object with address information instead of just the name of the account as a string. |
182
+
|`getaccountaddress`| n/a | There is no replacement for `getaccountaddress` since labels do not have an associated receive address. |
183
+
|`getaddressesbyaccount`|`getaddressesbylabel`|`getaddressesbylabel` returns a json object with the addresses as keys, instead of a list of strings. |
184
+
|`getreceivedbyaccount`|`getreceivedbylabel`|_no change in behavior_|
185
+
|`listaccounts`|`listlabels`|`listlabels` does not return a balance or accept `minconf` and `watchonly` arguments. |
186
+
|`listreceivedbyaccount`|`listreceivedbylabel`| Both methods return new `label` fields, along with `account` fields for backward compatibility. |
187
+
|`move`| n/a |_no replacement_|
188
+
|`sendfrom`| n/a |_no replacement_|
189
+
|`setaccount`|`setlabel`| Both methods now: <ul><li>allow assigning labels to any address, instead of raising an error if the address is not receiving address.<li>delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit `getaccountaddress` call to ensure the previous label still has a receiving address. |
190
+
191
+
| Changed Method | Notes |
192
+
| :--------------------- | :------ |
193
+
|`addmultisigaddress`| Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility if running with '-deprecatedrpc=accounts'. |
194
+
|`getnewaddress`| Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility. if running with '-deprecatedrpc=accounts' |
195
+
|`listunspent`| Returns new `label` fields. `account` field will be returned for backward compatibility if running with '-deprecatedrpc=accounts' |
196
+
|`sendmany`| The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the empty string, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). |
197
+
|`listtransactions`| The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the string `*`, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). |
198
+
|`getbalance`|`account`, `minconf` and `include_watchonly` parameters are deprecated, and can only be used if running with '-deprecatedrpc=accounts' |
199
+
109
200
Low-level RPC changes
110
201
---------------------
111
202
@@ -130,6 +221,14 @@ Low-level RPC changes
130
221
`importmulti` with hex script argument). `signrawtransaction*` also still
131
222
works for them.
132
223
224
+
- The `getwalletinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18.
225
+
- The `getaddressinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18.
226
+
227
+
Other API changes
228
+
-----------------
229
+
230
+
- The `inactivehdmaster` property in the `dumpwallet` output has been corrected to `inactivehdseed`
231
+
133
232
### Logging
134
233
135
234
- The log timestamp format is now ISO 8601 (e.g. "2018-02-28T12:34:56Z").
@@ -139,6 +238,18 @@ Low-level RPC changes
139
238
disables logging to debug.log. Instead, logging to file can be explicitly disabled
140
239
by setting `-debuglogfile=0`.
141
240
241
+
Transaction index changes
242
+
-------------------------
243
+
244
+
The transaction index is now built separately from the main node procedure,
245
+
meaning the `-txindex` flag can be toggled without a full reindex. If bitcoind
246
+
is run with `-txindex` on a node that is already partially or fully synced
247
+
without one, the transaction index will be built in the background and become
248
+
available once caught up. When switching from running `-txindex` to running
249
+
without the flag, the transaction index database will *not* be deleted
250
+
automatically, meaning it could be turned back on at a later time without a full
0 commit comments