21 KiB
v7.x Release notes
v7.0.0
How to Upgrade
When upgrading to this version, you must use the --wallet-migrate=5 flag
the first time you run it. It is strongly recommended to back up your wallet
before proceeding with the upgrade
(#782,
#896,
#888).
Notable Changes
Primitives
- TX
- tx.test no longer updates the filter,
instead
.testAndMaybeUpdateis used for testing and potentially updating (#856).
- tx.test no longer updates the filter,
instead
Node Changes
Add support for the interactive rescan, that allows more control over rescan process and allows parallel rescans (#856).
Node HTTP API
GET /orgetInfo()now has more properties (#869):treeRootHeight- height at which the block txns are accumulated in the current branch.indexersindexTX- is tx indexer enabled.indexAddress- is addr indexer enabled.
optionsspvis the Node SPV?prunedoes node have pruning enabled.
treeCompactioncompacted- whethere tree is compacted or not.compactOnInit- is tree compaction on init enabled.compactInterval- what is the current compaction interval config.nextCompaction- when will the next compaction trigger after restart.lastCompaction- when was the last compaction run.
- Introduce
scan interactivehook (start, filter, fullLock) (#883). - Add
get median timehook to get median time past for a blockhash (#888). - Add
get entrieshook to get entries. Similar toget hashes, but returns encoded entries (#888).
hs-client node
- Introduce
scanInteractivemethod that starts interactive rescan (#856).- expects ws hook for
block rescan interactiveparamsrawEntry, rawTXsthat returns scanAction object. - expects ws hook for
block rescan interactive abortparammessage.
- expects ws hook for
- Add
getMempoolRejectionFilterandcheckMempoolRejectionFilterNodeClient aliases. (#882). - Add
getFee, an HTTP alternative to estimateFee socket call (#882). - Adds
getEntries(start, end)that returns encoded chain entries (#882).
Wallet Changes
- Add migration that recalculates txdb balances to fix any inconsistencies (#782).
- Wallet will now use
interactive scanfor initial sync(on open) and rescan (#883).
Wallet Configuration
- Wallet now has option
wallet-migrate-no-rescan/migrate-no-rescanif you want to disable rescan when migration recommends it. It may result in the incorrect txdb state, but can be useful if you know the issue does not affect your wallet or is not critical (#859). - Add
--wallet-preload-all(or--preload-allfor standalone wallet node) that will open all wallets before starting other services (e.g. HTTP). By default this is set tofalse(#803). - Add
--wallet-max-history-txs(or--max-history-txsfor standalone wallet node) that will be the hard limit of confirmed and unconfirmed histories (#888).
Wallet API
- WalletNode now emits
openandcloseevents (#883). - WalletDB Now emits events for:
open,close,connect,disconnect(#859). - WalletDB
open()no longer callsconnectand needs separate callconnect(#859).open()no longer calls scan, instead only rollbacks and waits for sync to do the rescan (#859).- emits events for:
open,close,connect,disconnect,sync done(#859). - Wallet now has additional methods for quering history
(#888):
listUnconfirmed(acc, { limit, reverse })- Get first or lastlimitunconfirmed transactions.listUnconfirmedAfter(acc, { hash, limit, reverse })- Get first or lastlimitunconfirmed transactions after/before tx with hash:hash.listUnconfirmedFrom(acc, { hash, limit, reverse })- Get first or lastlimitunconfirmed transactions after/before tx with hashhash, inclusive.listUnconfirmedByTime(acc, { time, limit, reverse })- Get first or lastlimitunconfirmed transactions after/beforetime, inclusive.listHistory(acc, { limit, reverse })- Get first or lastlimitunconfirmed/confirmed transactions.listHistoryAfter(acc, { hash, limit, reverse })- Get first or lastlimitunconfirmed/confirmed transactions after/before tx with hashhash.listHistoryFrom(acc, { hash, limit, reverse })- Get first or lastlimitconfirmed/unconfirmed transactions after/before tx with hashhash, inclusive.listUnconfirmedByTime(acc, { time, limit, reverse })- Get first or lastlimitconfirmed/unconfirmed transactions after/beforetime, inclusive.- NOTE: Default is ascending order, from the oldest.
Wallet HTTP API
- All transaction creating endpoints now accept
hardFeefor specifying the exact fee (#845). - All transaction sending endpoints now fundlock/queue tx creation. (no more conflicting transactions) (#845)
- Add options to
getNamesfor passingown(#882). - Rename
createAuctionTxstocreateAuctionTXs(#899). - All
bidserializations will includeheightof the bid. (-1if it was migrated not-owned bid) (#896)GET /wallet/:id/auction(getAuctions)GET /wallet/:id/auction/:name(getAuctionByName)GET /wallet/:id/bid(getBids)GET /wallet/:id/bid/:name(getBidsByName)
- All
revealserializations will includebidPrevoutof the bid. (nullif it was migrated not-owned reveal) (#896)GET /wallet/:id/auction(getAuctions)GET /wallet/:id/auction/:name(getAuctionByName)GET /wallet/:id/reveal(getReveals)GET /wallet/:id/reveal/:name(getRevealsByName)
GET /wallet/:id/tx/history- The params are nowtime,after,limit, andreverse. (#888)GET /wallet/:id/tx/unconfirmed- The params are are same as above. (#888)
These endpoints have been deprecated (#888):
GET /wallet/:id/tx/range- Instead use thetimeparam for the history and unconfirmed endpoints.GET /wallet/:id/tx/last- Instead usereverseparam for the history and unconfirmed endpoints.
Examples
Pagination examples (#888):
GET /wallet/:id/tx/history?after=<txid>&limit=50&reverse=false
GET /wallet/:id/tx/history?after=<txid>&limit=50&reverse=true
By using after=<txid> we can anchor pages so that results will not shift
when new blocks and transactions arrive. With reverse=true we can change
the order the transactions are returned as latest to genesis. The
limit=<number> specifies the maximum number of transactions to return
in the result.
GET /wallet/:id/tx/history?time=<median-time-past>&limit=50&reverse=false
GET /wallet/:id/tx/history?time=<median-time-past>&limit=50&reverse=true
The param time is in epoch seconds and indexed based on median-time-past
(MTP) and date is ISO 8601 format. Because multiple transactions can share
the same time, this can function as an initial query, and then switch to the
above after format for the following pages.
GET /wallet/:id/tx/unconfirmed?after=<txid>&limit=50&reverse=false
GET /wallet/:id/tx/unconfirmed?after=<txid>&limit=50&reverse=true
GET /wallet/:id/tx/unconfirmed?time=<time-received>&limit=50&reverse=false
The same will apply to unconfirmed transactions. The time is in epoch
seconds and indexed based on when the transaction was added to the wallet.
Wallet RPC
The following new methods have been added (#888):
listhistory- List history with a limit and in reverse order.listhistoryafter- List history after a txid (subsequent pages).listhistorybytime- List history by giving a timestamp in epoch seconds (block median time past).listunconfirmed- List unconfirmed transactions with a limit and in reverse order.listunconfirmedafter- List unconfirmed transactions after a txid (subsequent pages).listunconfirmedbytime- List unconfirmed transactions by time they where added.
The following methods have been deprecated (#888):
listtransactions- Uselisthistoryand the related methods and theafterargument for results that do not shift when new blocks arrive.
Wallet CLI (hsw-cli)
historynow accepts new args on top of--account:--reverse,--limit,--after,--after(#888).pendingnow accepts new args, same as above (#888).
hs-client wallet
-
getHistoryandWallet.getHistoryno longer acceptaccount, instead accepts object with properties:account,time,after,limit, andreverse(#888). -
getPendingandWallet.getPendinghave the same changes asgetHistoryabove (#888).
Changelog
- [
0a4cc496] - #888 - SEMVER-MAJOR wallet: Wallet TX Count and time indexing - (@nodech - Nodari Chkuaselidze and @braydonf - Braydon Fuller) - [
5294be7e] - #896 - SEMVER-MAJOR wallet: Link bid and reveal - (@nodech - Nodari Chkuaselidze) - [
d754b863] - #899 - SEMVER-MAJOR wallet-client: rename createAuctionTxs to createAuctionTXs. - (@nodech - Nodari Chkuaselidze) - [
9ddb69e2] - #883 - SEMVER-MAJOR wallet: Wallet Sync Updates - (@nodech - Nodari Chkuaselidze) - [
fc23f410] - #782 - SEMVER-MAJOR txdb: Txdb tests and updates - (@nodech - Nodari Chkuaselidze and @pinheadmz - Matthew Zipkin) - [
bb7da60e] - #859 - SEMVER-MAJOR wallet: Add open/close and connect/disconnect events. - (@nodech - Nodari Chkuaselidze) - [
509ffe5f] - #882 - SEMVER-MINOR clients: Update wallet and node clients - (@nodech - Nodari Chkuaselidze) - [
f749f5cc] - #885 - SEMVER-MINOR wallet: set icannlockup to true for wallets. - (@nodech - Nodari Chkuaselidze) - [
419924b2] - #856 - SEMVER-MINOR chain: Fullnode interactive rescan. - (@nodech - Nodari Chkuaselidze) - [
79994774] - #803 - SEMVER-MINOR wallet: --preload-all option to load all wallet on open. - (@nodech - Nodari Chkuaselidze) - [
aac7fa7b] - #869 - SEMVER-MINOR node-http: Add node/chain parameters to the getInfo (/) - (@nodech - Nodari Chkuaselidze) - [
7bd2078c] - #866 - SEMVER-MINOR covenant: set methods on covenant. - (@nodech - Nodari Chkuaselidze) - [
7aeb668b] - #845 - SEMVER-MINOR wallet-http: put send transaction endpoints behind fund locks. - (@nodech - Nodari Chkuaselidze) - [
ceab2a81] - #900 - migrations: Update migrations - (@nodech - Nodari Chkuaselidze) - [
53780989] - #906 - net: Remove offline seed node - (@Falci - Fernando Falci) - [
dc4f4f42] - #884 - net: add nathan.woodburn nodes to seed - (@Nathanwoodburn - Nathan Woodburn) - [
1b331eed] - #904 - wallet: Add more specific error when linked inputs are pending. - (@nodech - Nodari Chkuaselidze) - [
45c6ac1d] - #902 - types: Update types - (@nodech - Nodari Chkuaselidze) - [
e88734fb] - #901 - mtx: - Resolve coins from coinview as well during coinselection. - (@nodech - Nodari Chkuaselidze) - [
e93bd53e] - #898 - wallet: Add nowFn to wdb options and txdb. - (@nodech - Nodari Chkuaselidze) - [
680a9da7] - #897 - pkg: Update bdb and other deps. - (@nodech - Nodari Chkuaselidze) - [
1daebd8a] - #895 - test: change ownership resolver from google to cloudflare. - (@nodech - Nodari Chkuaselidze) - [
fe336aec] - #893 - test: disable dns-test until c-ares fix. - (@nodech - Nodari Chkuaselidze) - [
0a4f24bd] - #887 - pkg: update lint and docs. - (@nodech - Nodari Chkuaselidze) - [
5f943173] - #881 - test: Test cleanup - (@nodech - Nodari Chkuaselidze) - [
349d203b] - #875 - test: Cover reorg for double open index - (@nodech - Nodari Chkuaselidze) - [
c9e39855] - #879 - test: add in memory dns cache. - (@nodech - Nodari Chkuaselidze) - [
5955e913] - #870 - wallet: add tests for the chain state and fix markState - (@nodech - Nodari Chkuaselidze) - [
b6778c4b] - #876 - pkg: update to es2020. Use latest bslint - (@nodech - Nodari Chkuaselidze) - [
b01d39c2] - #858 - net: add a new permanently hard-coded seed node - @handshake-enthusiast - [
43e13006] - #871 - wallet: fix batch styles and jsdocs. - (@nodech - Nodari Chkuaselidze) - [
e3e5e01c] - #873 - chain: remove unnecessary critical error. - (@nodech - Nodari Chkuaselidze) - [
64468280] - #861 - wallet: don't add coinbase txs to the pending list. - (@nodech - Nodari Chkuaselidze) - [
bc3c1728] - #868 - wallet: rescan deadlock fix - (@nodech - Nodari Chkuaselidze) - [
0690c6f3] - #860 - pkg: clean up unused params. - (@nodech - Nodari Chkuaselidze) - [
4a70d700] - #863 - test: add unit tests for cipher state - (@nodech - Nodari Chkuaselidze and @kilpatty - Sean Kilgarriff) - [
5582e791] - #865 - test: abstract some mining heights - (@nodech - Nodari Chkuaselidze and @tynes - Mark Tyneway) - [
5c287c9d] - #853 - net: Delete duplicates from seed nodes - @handshake-enthusiast - [
e4245e53] - #852 - txdb: fix conflict event bug. - (@nodech - Nodari Chkuaselidze and @braydonf - Braydon Fuller) - [
7fe7ce41] - #555 - namestate: improve "stats" object for transfers, expiry and revoke - (@pinheadmz - Matthew Zipkin and @nodech - Nodari Chkuaselidze) - [
2ede2c29] - #851 - pkg: update bdb to 1.5.1 and use @handshake-org/bfilter. - (@nodech - Nodari Chkuaselidze) - [
4e87fb1d] - #850 - script: add redundant tests to math ops. - (@nodech - Nodari Chkuaselidze) - [
ab611036] - #849 - pkg: ci no longer update npm on build. - (@nodech - Nodari Chkuaselidze) - [
61ae19c2] - #844 - docs: backport release schedule and v6.x notes. - (@nodech - Nodari Chkuaselidze) - [
9b70c294] - #910 - net: remove unstable seed. (@nodech - Nodari Chkuaselidze)