All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Migrate and remove all PostgreSQL data to RocksDB. Redis and PostgreSQL containers will be removed in a future release.
- No longer start
chainpoint-ntpdiftimesyncdorntpdis detected on Linux, ortimed, orpacemakeron macOS. Previously onlyntpdwas tested for. - Perform automatic backups of Auth (HMAC) keys to
keys/backupsdirectory on Node registration or restart. - Deprecated
make backup-auth-keystarget as backups are now automatic. - Added
echocommand tomake print-auth-keysoutput. This provides easier to use one-line command to restore a backup key to thekeysdir. Run thisechocommand to place a.keyfile in the keys directory with proper Auth Key (HMAC) content. - Removed Redis and PostgreSQL related
maketargets as they are no longer needed.
- Send a
User-Agentstring with upstream requests.
- Updated NPM dependencies.
- Write ephemeral proof state to RocksDB (formerly Redis). This provides a significant increase in sustained inbound hash rate while consuming disk space instead of RAM. The ephemeral data written to RocksDB is auto-pruned after 24 hours. The Redis database will be removed from the Node in a future release.
- Upgrade to PostgreSQL 9.6.9
- Upgrade to Redis 4.0.10
- Upgrade Node.js (
node:8.9.0-alpine->node:8.11.3-stretch) Docker container base - Reduce HTTP calls to
PUT /nodesif request body matches previous successfulPUT. - Certain caching functions, which contain small amounts of volatile data, now store their data in RAM instead of Redis.
- Improved handling of processing time hints from Chainpoint Core.
- Auto-migrate old Redis proof state and other Redis data to RocksDB on initial startup.
- Node UI React application internal re-factoring and bugfixes.
- Ensure
validator.isIP()receives a string avoiding rare crash in1.5.1release. - Re-create
/keys/backupsdirectories if previously deleted. - Improve detection, handling, and UI messaging in Brave browser when third-party cookies and local storage are disabled.
- Trim whitespace from the list of hashes provided to
POST /hashesusing thehashidsrequest header. - Further enforce Node operation on HTTP port 80.
- Replaced Node local firewall with custom updatable IP filter. This eliminates the need for the Node to schedule and perform automatic restarts.
- If a Node receives an HTTP
426 Upgrade Requirederror from Core, indicating that the Node is running too old a version of the Node software to update its registration, it will no longer retry a request that cannot succeed. It will log an error message to the logs and exit. - During registration, if an HTTP
409 Conflicterror is thrown as a result of the Ethereum address or public URI already being registered, the Node will no longer retry and will exit. - When a Node is configured password with
CHAINPOINT_NODE_UI_PASSWORD=falsethe Node UI will bypass the login screen and redirect the user directly to dashboard.
- An issue with persisting Redux data to browser local storage which sometimes resulted in the Node UI appearing 'stuck' and not displaying the most current data.
- Enabled authentication form submit via [enter] key, only validate after form submitted.
- Reduce retry count for failed registrations to 3.
- Nodes that fail to register will no longer exit after retries. The Node will continue to run, allowing access to the Node UI.
- Allow adjustment of Node hash aggregation period based on Core config.
- Update Chainpoint library dependencies
merkle-toolsandchainpoint-parseto current versions.
- New Makefile target for
make print-auth-keyswhich will print the filename and auth key contents of each file in thekeys/backupsdirectory. This allows for easier copy/paste of backup key contents as an alternative to exploring the files in thekeys/backupsdirectory. - Auth keys will be automatically backed up to the local drive on registration.
- Log some additional details about the cause(s) of a failed audit to the
make logsoutput.
- Specifying
falseas a Boolean or String toCHAINPOINT_NODE_UI_PASSWORDin.envconfiguration will now work as expected. - Update to Node UI to correctly display Node ms delta.
- Simplify and enhance performance of Core proof retrieval.
make clear-containerswill now only apply to Chainpoint related containers.make clear-containersno longer usessudo. Assumes you have setup system so that logged-in user has permissions to docker commands without use ofsudo.- The check for Ubuntu OS in certain
makecommands will no longer exit make task if Ubuntu not detected. A warning will be printed onmake upandmake upgradeif not running Ubuntu. - Log an error if
CHAINPOINT_NODE_PUBLIC_URIis set to an RFC-1918 private IP address that will never be routable over the public Internet.
- Restoration of auth keys from a
.keyfile where the file contains trailing newlines or whitespace now works as expected. - A spurious error related to importing a backup auth key :
INFO : Registration : HMAC Auth Key Not Found - Importing an auth key backup where there is whitespace in the
.keyfile. - The
make upgrade-docker-composetask caused issues for some as apparently the binary download from its source Github repository is unreliable and can cause an upgrade to a corrupted binary. We are now providing a download of our own binary fordocker-composewhich is frozen into this repository as well. You can install it usingmake upgrade-docker-composeor, if yourdocker-composeinstall is already having issues and you can't do a normalmake upgrade, you can use the out-of-band installation by running the followingcurlcommand. This will download the same frozen Linux binary. This should resolve issues withtext file busyerrors and allow you to proceed normally withmake upgrade.
curl -sSL https://chainpoint-node.storage.googleapis.com/docker-compose-install.sh | bash
- Enhanced backup and restore documentation in the README.md file
- If a
CHAINPOINT_NODE_PUBLIC_URIis provided (public Node) the Node will perform an HTTP health check on startup to ensure that the configured URI is the same as the Node is actually running on. Will help prevent IP misconfiguration and resulting audit failures. The Node will exit if mis-configured and can't reach itself on the IP URI configured. - A newly registered Node will now automatically generate a backup of the Node Auth key without user intervention. This will only be triggered on first Node registration, and not on subsequent updates.
- A new Makefile task
make upgrade-docker-composewhich will upgrade it to version1.21.0. This task will now be run automatically onmake upgradeas well. - A new Makefile task
make clear-containerswhich will stop and remove any running Docker containers on the host. This will be run automatically onmake upandmake upgradeas well. This prevents occasional issues with stuck containers that would cause an error on Node upgrade.
- Node UI login on Microsoft Windows 10 - Edge browser v16 & v14 - now works.
- Restoration of auth keys from a
.keyfile where the Ethereum address in the filename is mixed case now works as expected.
- Node UI (preview version) and secure transfer of audit health data to Node
- Local caching of Core proofs
- Make use of new
COMPOSE_IGNORE_ORPHANSenv var withdocker-composeto hide unneeded 'orphan container' warnings. Requires current version ofdocker-composewhich can now be upgraded in place usingmake upgrade-docker-compose
- Updated Docker ntpd image
- New auth key backup/restore method
make backup-auth-keyswhich will store backups as files inkeys/backupsdirectory, and allow restore fromkeysdirectory - Upgraded Redis docker image to v4.0.9
- Upgraded NTPD docker image
.env.sampleupdated to document new Node UI password configurationmake upgradewill now ensure that the Node is being upgraded from themasterbranch of the Github repository- Prevent the Node daily auto-restart from occuring near the time of scheduled audits
make auth-keyswill be removed in a future release. It is now an alias for the newmake backup-auth-keys