- A consensus inflation bug has been fixed. Non-upgraded miners should upgrade as soon as possible. See https://handshake.org/notice/2020-04-02-Inflation-Bug-Disclosure.html for more information.
- A new chain value migration is necessary (related to the above fix). This migration will automatically run on boot and should only take 2-3 minutes. Pruned nodes cannot run this migration. Note that pruned nodes may have an incorrect chain value until they re-sync.
getwork
has been fixed and improved. See handshake-org#583.
- Fixes a bug that caused rescans to fail if a name being "watched" was ever
TRANSFER
ed. Adeepclean
plusrescan
may be required to fix affected wallets.
- Root server DNSSEC has been fixed. It is only authoritative over DS and TXT records, and only returns TXT if no NS (referral) is present in the zone.
FullNode
andSPVNode
accept configuration parameter--no-dns
(orno-dns: true
inhsd.conf
) which launches the node without either DNS server (the root authoritative server and the recursive resolver). This avoids some port collisions with other HNS resolvers like hnsd running locally, and generally separates and reduces security concerns around running unneeded servers when a node is just used for transactions and blocks.--no-rs
is also accepted to disable the recursive DNS resolver (but keep the root server).
-
Adds new wallet HTTP endpoint
/wallet/:id/auction
based onPOST /wallet/:id/bid
. It requires an additional parameterbroadcastBid
set to either true or false. This action returns a bid and its corresponding reveal, the reveal being prepared in advance. The bid will be broadcasted either during the creation (broadcastBid=true
) or at a later time (broadcastBid=false
). The reveal will have to be broadcasted at a later time, during the REVEAL phase. The lockup must include a blind big enough to ensure the BID will be the only input of the REVEAL transaction. -
Now parses option
--wallet-check-lookahead
(or--check-lookahead
for standalone wallet node) that will check every account of every wallet in the DB and ensure the lookahead value is the current default and maximum of200
. A rescan is recommended after this action.
- The
stats
field included innamestate.toJSON()
includes extra data if the name is in a TRANSFER state.
-
FullNode
now parses option--min-weight=<number>
(min-weight: <number>
in hsd.conf orminWeight: <number>
in JavaScript object instantiation). When assembling a block template, if there are not enough fee-paying transactions available, the miner will add transactions up to the minimum weight that would normally be ignored for being "free" (paying a fee below policy limit). The default value is raised from0
to5000
(a 1-in, 2-out BID transaction has a weight of about889
). -
Transactions that have sat unconfirmed in the mempool for 3 days will be evicted. This is the default
MEMPOOL_EXPIRY_TIME
value set inpolicy.js
but can be configured (in seconds) with theFullNode
option--mempool-expiry-time
.
- Adds new wallet HTTP endpoint
/deepclean
that requires a parameterI_HAVE_BACKED_UP_MY_WALLET=true
. This action wipes out balance and transaction history in the wallet DB but retains key hashes and name maps. It should be used only if the wallet state has been corrupted by issues like the reserved name registration bug or the locked coins balance after FINALIZE bug. After the corrupt data has been cleared, a walletDB rescan is required.
- Adds new wallet HTTP endpoint
/deeprescan
that requires a parameterI_HAVE_BACKED_UP_MY_WALLET=true
. This action wipes out balance and transaction history in the wallet DB but retains key hashes and name maps. It should be used only if the wallet state has been corrupted by issues like the reserved name registration bug or the locked coins balance after FINALIZE bug.
- Fixes a bug that ignored the effect of sending or receiving a FINALIZE on a
wallet's
lockedConfirmed
andlockedUnconfirmed
balance.
This version fixes a bug in the wallet that would corrupt the database if a user manually generated change addresses using API commands. Upon running the updated software for the first time, hsd will check for corruption and if there is none, proceed with normal operation (no user interaction is required, although this process may take a few minutes for a "busy" wallet). If the bug is detected, hsd will throw an error and quit. To repair the wallet, the user must launch hsd with an extra command-line flag, in addition to whatever parameters they normally use:
$ hsd --wallet-migrate=0
(for most users)
or $ hs-wallet --migrate=0
(for remote wallet node)
These flags may be added to environment variables or a config file if desired, following the pattern described in the configuration guide.
The repair may take a few minutes and will automatically initiate a rescan. For this reason, the user's wallet MUST be connected to a full node (not a pruned node or SPV node).
-
Adds a new node rpc
resetrootcache
that clears the root name server cache. -
A new RPC call
validateresource
was added to validate HandshakeResource
JSON and will return an error message on an invalidResource
. The input JSON object is the format expected byrpc sendupdate
. -
A new RPC call
getdnssecproof
was added to build and return the DNSSEC proof used for reserved name claims. This can be used to test if a reserved name is ready for a CLAIM. -
RPC calls that return tx outputs in JSON now include output addresses as a string in addition to the version/hash pair.
-
RPC methods
getblock
andgetblockheader
now returnconfirmations: -1
if the block is not in the main chain. -
A new HTTP endpoint
/header/:block
was added to retrieve a block header by its hash or height.
- Adds new wallet rpc
importname
that enables user to "watch" a name and track its auction progress without bidding on it directly.
- A bug was fixed that prevented reserved names that had been CLAIMed from REGISTERing. If unpatched software was used to CLAIM a name already, that wallet database is irreversibly corrupted and must be replaced. See handshake-org#454
Creating a watch-only wallet now requires an account-key
(or accountKey
)
argument. This is to prevent hsd from generating keys and addresses the user
can not spend from.
- Initial tagged release.