# Changelog ## 1.0 ### Additions and Improvements - [IBFT 2.0](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/IBFT/) - [Permissioning](https://docs.pantheon.pegasys.tech/en/latest/Permissions/Permissioning/) - [JSON-RPC Authentication](https://docs.pantheon.pegasys.tech/en/latest/JSON-RPC-API/Authentication/) - Added `rlp encode` subcommand [\#965](https://github.com/PegaSysEng/pantheon/pull/965) - Method to reload permissions file [\#834](https://github.com/PegaSysEng/pantheon/pull/834) - Added rebind mitigation for Websockets. [\#905](https://github.com/PegaSysEng/pantheon/pull/905) - Support genesis contract code [\#749](https://github.com/PegaSysEng/pantheon/pull/749) (thanks to [kziemianek](https://github.com/kziemianek)). Fixes issue [\#662](https://github.com/PegaSysEng/pantheon/issues/662). - Documentation updates include: - Added details on [port configuration](https://docs.pantheon.pegasys.tech/en/latest/Configuring-Pantheon/Networking/#port-configuration) - Added [Resources page](https://docs.pantheon.pegasys.tech/en/latest/Resources/Resources/) linking to Pantheon blog posts and webinars - Added [JSON-RPC Authentication](https://docs.pantheon.pegasys.tech/en/latest/JSON-RPC-API/Authentication/) - Added [tutorial to create permissioned network](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-Permissioned-Network/) - Added [Permissioning](https://docs.pantheon.pegasys.tech/en/latest/Permissions/Permissioning/) content - Added [Permissioning API methods](https://docs.pantheon.pegasys.tech/en/latest/Reference/JSON-RPC-API-Methods/#permissioning-methods) - Added [tutorial to create Clique private network](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-Private-Clique-Network/) - Added [tutorial to create IBFT 2.0 private network](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-IBFT-Network/) ### Technical Improvements - RoundChangeCertificateValidator requires unique authors [\#997](https://github.com/PegaSysEng/pantheon/pull/997) - RPC tests can use 127.0.0.1 loopback rather than localhost [\#979](https://github.com/PegaSysEng/pantheon/pull/979) - Integration Test implementation dependency for non-IntelliJ IDE [\#978](https://github.com/PegaSysEng/pantheon/pull/978) - Only import block if it isn't already on the block chain [\#977](https://github.com/PegaSysEng/pantheon/pull/977) - Disable picocli ansi when testing [\#975](https://github.com/PegaSysEng/pantheon/pull/975) - Create peer discovery packets on a worker thread [\#961](https://github.com/PegaSysEng/pantheon/pull/961) - Removed Orion snapshot dependency [\#933](https://github.com/PegaSysEng/pantheon/pull/933) - Use network ID instead of chain ID in MainnetPantheonController. [\#929](https://github.com/PegaSysEng/pantheon/pull/929) - Propagate new block messages to other clients in a worker thread [\#928](https://github.com/PegaSysEng/pantheon/pull/928) - Parallel downloader should stop on puts if requested. [\#927](https://github.com/PegaSysEng/pantheon/pull/927) - Permission config file location and option under docker [\#925](https://github.com/PegaSysEng/pantheon/pull/925) - Fixed potential stall in world state download [\#922](https://github.com/PegaSysEng/pantheon/pull/922) - Refactoring to introduce deleteOnExit\(\) for temp files [\#920](https://github.com/PegaSysEng/pantheon/pull/920) - Reduce "Received transactions message" log from debug to trace [\#919](https://github.com/PegaSysEng/pantheon/pull/919) - Handle PeerNotConnected exceptions when sending wire keep alives [\#918](https://github.com/PegaSysEng/pantheon/pull/918) - admin_addpeers: error if node not whitelisted [\#917](https://github.com/PegaSysEng/pantheon/pull/917) - Expose the Ibft MiningCoordinator [\#916](https://github.com/PegaSysEng/pantheon/pull/916) - Check perm api against perm cli [\#915](https://github.com/PegaSysEng/pantheon/pull/915) - Update metrics when completing a world state request with existing data [\#914](https://github.com/PegaSysEng/pantheon/pull/914) - Improve RocksDBQueue dequeue performance [\#913](https://github.com/PegaSysEng/pantheon/pull/913) - Error when removing bootnodes from nodes whitelist [\#912](https://github.com/PegaSysEng/pantheon/pull/912) - Incremental Optimization\(s\) on BlockBroadcaster [\#911](https://github.com/PegaSysEng/pantheon/pull/911) - Check permissions CLI dependencies [\#909](https://github.com/PegaSysEng/pantheon/pull/909) - Limit the number of times we retry peer discovery interactions [\#908](https://github.com/PegaSysEng/pantheon/pull/908) - IBFT to use VoteTallyCache [\#907](https://github.com/PegaSysEng/pantheon/pull/907) - Add metric to expose number of inflight world state requests [\#906](https://github.com/PegaSysEng/pantheon/pull/906) - Bootnodes not on whitelist - improve errors [\#904](https://github.com/PegaSysEng/pantheon/pull/904) - Make chain download cancellable [\#901](https://github.com/PegaSysEng/pantheon/pull/901) - Enforce accounts must start with 0x [\#900](https://github.com/PegaSysEng/pantheon/pull/900) - When picking fast sync pivot block, use the peer with the best total difficulty [\#899](https://github.com/PegaSysEng/pantheon/pull/899) - Process world state download data on a worker thread [\#898](https://github.com/PegaSysEng/pantheon/pull/898) - CLI mixin help [\#895](https://github.com/PegaSysEng/pantheon/pull/895) ([macfarla](https://github.com/macfarla)) - Use absolute datapath instead of relative. [\#894](https://github.com/PegaSysEng/pantheon/pull/894). Fixes issue [\#854](https://github.com/PegaSysEng/pantheon/issues/854). - Fix task queue so that the updated failure count for requests is stored [\#893](https://github.com/PegaSysEng/pantheon/pull/893) - Fix authentication header [\#891](https://github.com/PegaSysEng/pantheon/pull/891) - Reorganize eth tasks [\#890](https://github.com/PegaSysEng/pantheon/pull/890) - Unit tests of BlockBroadcaster [\#887](https://github.com/PegaSysEng/pantheon/pull/887) - Fix authentication file validation errors [\#886](https://github.com/PegaSysEng/pantheon/pull/886) - Fixing file locations under docker [\#885](https://github.com/PegaSysEng/pantheon/pull/885) - Handle exceptions properly in EthScheduler [\#884](https://github.com/PegaSysEng/pantheon/pull/884) - More bootnodes for goerli [\#880](https://github.com/PegaSysEng/pantheon/pull/880) - Rename password hash command [\#879](https://github.com/PegaSysEng/pantheon/pull/879) - Add metrics for EthScheduler executors [\#878](https://github.com/PegaSysEng/pantheon/pull/878) - Disconnect peer removed from node whitelist [\#877](https://github.com/PegaSysEng/pantheon/pull/877) - Reduce logging noise from invalid peer discovery packets and handshaking [\#876](https://github.com/PegaSysEng/pantheon/pull/876) - Detect stalled world state downloads [\#875](https://github.com/PegaSysEng/pantheon/pull/875) - Limit size of Ibft future message buffer [\#873](https://github.com/PegaSysEng/pantheon/pull/873) - Ibft2: Replace NewRound with extended Proposal [\#872](https://github.com/PegaSysEng/pantheon/pull/872) - Fixed admin_addPeer to periodically check maintained connections [\#871](https://github.com/PegaSysEng/pantheon/pull/871) - WebSocket method permissions [\#870](https://github.com/PegaSysEng/pantheon/pull/870) - Select new pivot block when world state becomes unavailable [\#869](https://github.com/PegaSysEng/pantheon/pull/869) - Introduce FutureUtils to reduce duplicated code around CompletableFuture [\#868](https://github.com/PegaSysEng/pantheon/pull/868) - Implement world state cancel [\#867](https://github.com/PegaSysEng/pantheon/pull/867) - Renaming authentication configuration file CLI command [\#865](https://github.com/PegaSysEng/pantheon/pull/865) - Break out RoundChangeCertificate validation [\#864](https://github.com/PegaSysEng/pantheon/pull/864) - Disconnect peers where the common ancestor is before our fast sync pivot [\#862](https://github.com/PegaSysEng/pantheon/pull/862) - Initial scaffolding for block propagation [\#860](https://github.com/PegaSysEng/pantheon/pull/860) - Fix NullPointerException when determining fast sync pivot [\#859](https://github.com/PegaSysEng/pantheon/pull/859) - Check for invalid token [\#856](https://github.com/PegaSysEng/pantheon/pull/856) - Moving NodeWhitelistController to permissioning package [\#855](https://github.com/PegaSysEng/pantheon/pull/855) - Fix state download race condition by creating a TaskQueue API [\#853](https://github.com/PegaSysEng/pantheon/pull/853) - Changed separator in JSON RPC permissions [\#852](https://github.com/PegaSysEng/pantheon/pull/852) - WebSocket acceptance tests now can use WebSockets [\#851](https://github.com/PegaSysEng/pantheon/pull/851) - IBFT notifies EthPeer when remote node has a better block [\#849](https://github.com/PegaSysEng/pantheon/pull/849) - Support resuming fast-sync downloads [\#848](https://github.com/PegaSysEng/pantheon/pull/848) - Tweak Fast Sync Config [\#847](https://github.com/PegaSysEng/pantheon/pull/847) - RPC authentication configuration validation + tests. [\#846](https://github.com/PegaSysEng/pantheon/pull/846) - Tidy-up FastSyncState persistence [\#845](https://github.com/PegaSysEng/pantheon/pull/845) - Do parallel extract signatures in the parallel block importer. [\#844](https://github.com/PegaSysEng/pantheon/pull/844) - Fix 'the Input Is Too Long' Error on Windows [\#843](https://github.com/PegaSysEng/pantheon/pull/843) (thanks to [glethuillier](https://github.com/glethuillier)). Fixes issue [\#839](https://github.com/PegaSysEng/pantheon/issues/839). - Remove unnecessary sleep [\#842](https://github.com/PegaSysEng/pantheon/pull/842) - Shutdown improvements [\#841](https://github.com/PegaSysEng/pantheon/pull/841) - Speed up shutdown time [\#838](https://github.com/PegaSysEng/pantheon/pull/838) - Add metrics to world state downloader [\#837](https://github.com/PegaSysEng/pantheon/pull/837) - Store pivot block header [\#836](https://github.com/PegaSysEng/pantheon/pull/836) - Clique should use beneficiary of zero on epoch blocks [\#833](https://github.com/PegaSysEng/pantheon/pull/833) - Clique should ignore proposals for address 0 [\#831](https://github.com/PegaSysEng/pantheon/pull/831) - Fix intermittency in FullSyncDownloaderTest [\#830](https://github.com/PegaSysEng/pantheon/pull/830) - Added the authentication service to the WebSocket service [\#829](https://github.com/PegaSysEng/pantheon/pull/829) - Extract creation and init of ProtocolContext into a re-usable class [\#828](https://github.com/PegaSysEng/pantheon/pull/828) - Prevent duplicate commit seals in ibft header [\#827](https://github.com/PegaSysEng/pantheon/pull/827) - Validate Ibft vanity data length [\#826](https://github.com/PegaSysEng/pantheon/pull/826) - Refactored json rpc authentication to be provided as a service [\#825](https://github.com/PegaSysEng/pantheon/pull/825) - Handle unavailable world states [\#824](https://github.com/PegaSysEng/pantheon/pull/824) - Password in JWT payload [\#823](https://github.com/PegaSysEng/pantheon/pull/823) - Homogenize error messages when required parameters are set [\#822](https://github.com/PegaSysEng/pantheon/pull/822) ([glethuillier](https://github.com/glethuillier)). Fixes issue [\#821](https://github.com/PegaSysEng/pantheon/issues/821). - Set remote peer chain head to parent of block received in NEW\_BLOCK\_MESSAGE [\#819](https://github.com/PegaSysEng/pantheon/pull/819) - Peer disconnects should not result in stack traces [\#818](https://github.com/PegaSysEng/pantheon/pull/818) - Abort previous builds [\#817](https://github.com/PegaSysEng/pantheon/pull/817) - Parallel build stages [\#816](https://github.com/PegaSysEng/pantheon/pull/816) - JWT authentication for JSON-RPC [\#815](https://github.com/PegaSysEng/pantheon/pull/815) - Log errors that occur while finding a common ancestor [\#814](https://github.com/PegaSysEng/pantheon/pull/814) - Shuffled log levels [\#813](https://github.com/PegaSysEng/pantheon/pull/813) - Prevent duplicate IBFT messages being processed by state machine [\#811](https://github.com/PegaSysEng/pantheon/pull/811) - Fix Orion startup ports [\#810](https://github.com/PegaSysEng/pantheon/pull/810) - Commit world state continuously [\#809](https://github.com/PegaSysEng/pantheon/pull/809) - Improve block propagation time [\#808](https://github.com/PegaSysEng/pantheon/pull/808) - JSON-RPC authentication cli options & acceptance tests [\#807](https://github.com/PegaSysEng/pantheon/pull/807) - Remove privacy not supported warning [\#806](https://github.com/PegaSysEng/pantheon/pull/806) (thanks to [vinistevam](https://github.com/vinistevam)) - Wire up Private Transaction Processor [\#805](https://github.com/PegaSysEng/pantheon/pull/805) (thanks to [Puneetha17](https://github.com/Puneetha17)) - Apply a limit to the number of responses in RespondingEthPeer.respondWhile [\#803](https://github.com/PegaSysEng/pantheon/pull/803) - Avoid requesting empty block bodies from the network. [\#802](https://github.com/PegaSysEng/pantheon/pull/802) - Handle partial responses to get receipts requests [\#801](https://github.com/PegaSysEng/pantheon/pull/801) - Rename functions in Ibft MessageValidator [\#800](https://github.com/PegaSysEng/pantheon/pull/800) - Upgrade GoogleJavaFormat to 1.7 [\#795](https://github.com/PegaSysEng/pantheon/pull/795) - Minor refactorings of IntegrationTest infrastructure [\#786](https://github.com/PegaSysEng/pantheon/pull/786) - Rework Ibft MessageValidatorFactory [\#785](https://github.com/PegaSysEng/pantheon/pull/785) - Rework IbftRoundFactory [\#784](https://github.com/PegaSysEng/pantheon/pull/784) - Rename artefacts to artifacts within IBFT [\#782](https://github.com/PegaSysEng/pantheon/pull/782) - Rename TerminatedRoundArtefacts to PreparedRoundArtefacts [\#781](https://github.com/PegaSysEng/pantheon/pull/781) - Rename Ibft MessageFactory methods [\#779](https://github.com/PegaSysEng/pantheon/pull/779) - Update WorldStateDownloader to only filter out known code requests [\#777](https://github.com/PegaSysEng/pantheon/pull/777) - Multiple name options only search for the longest one [\#776](https://github.com/PegaSysEng/pantheon/pull/776) - Move ethTaskTimer to abstract root [\#775](https://github.com/PegaSysEng/pantheon/pull/775) - Parallel Block importer [\#774](https://github.com/PegaSysEng/pantheon/pull/774) - Wait for a peer with an estimated chain height before selecting a pivot block [\#772](https://github.com/PegaSysEng/pantheon/pull/772) - Randomly perform full validation when fast syncing blocks [\#770](https://github.com/PegaSysEng/pantheon/pull/770) - IBFT Message rework, piggybacking blocks on msgs. [\#769](https://github.com/PegaSysEng/pantheon/pull/769) - EthScheduler additions [\#767](https://github.com/PegaSysEng/pantheon/pull/767) - Fixing node whitelist isPermitted check [\#766](https://github.com/PegaSysEng/pantheon/pull/766) - Eth/63 labels [\#764](https://github.com/PegaSysEng/pantheon/pull/764) - Permissioning whitelist persistence. [\#763](https://github.com/PegaSysEng/pantheon/pull/763) - Created message validators for NewRound and RoundChange [\#760](https://github.com/PegaSysEng/pantheon/pull/760) - Add tests for FastSyncChainDownloader as a whole [\#758](https://github.com/PegaSysEng/pantheon/pull/758) - Flatten IBFT Message API [\#757](https://github.com/PegaSysEng/pantheon/pull/757) - Added TerminatedRoundArtefacts [\#756](https://github.com/PegaSysEng/pantheon/pull/756) - Fix thread names in EthScheduler to include the thread number [\#755](https://github.com/PegaSysEng/pantheon/pull/755) - Separate round change reception from RoundChangeCertificate [\#754](https://github.com/PegaSysEng/pantheon/pull/754) - JSON-RPC authentication login [\#753](https://github.com/PegaSysEng/pantheon/pull/753) - Spilt Ibft MessageValidator into components [\#752](https://github.com/PegaSysEng/pantheon/pull/752) - Ensure first checkpoint headers is always in local blockchain for FastSyncCheckpointHeaderManager [\#750](https://github.com/PegaSysEng/pantheon/pull/750) - Refactored permissioning components to be Optional. [\#747](https://github.com/PegaSysEng/pantheon/pull/747) - Integrate rocksdb-based queue into WorldStateDownloader [\#746](https://github.com/PegaSysEng/pantheon/pull/746) - Generify orion to enclave [\#745](https://github.com/PegaSysEng/pantheon/pull/745) (thanks to [vinistevam](https://github.com/vinistevam)) - Moved IBFT Message factory to use wrapped message types [\#744](https://github.com/PegaSysEng/pantheon/pull/744) - Handle timeouts when requesting checkpoint headers correctly [\#743](https://github.com/PegaSysEng/pantheon/pull/743) - Update RoundChangeManager to use flattened message [\#742](https://github.com/PegaSysEng/pantheon/pull/742) - Handle validation failures when fast importing blocks [\#741](https://github.com/PegaSysEng/pantheon/pull/741) - Updated IbftRound and RoundState APIs to use wrapped messages [\#740](https://github.com/PegaSysEng/pantheon/pull/740) - Exception handling [\#739](https://github.com/PegaSysEng/pantheon/pull/739) - Upgrade dependency versions and build cleanup [\#738](https://github.com/PegaSysEng/pantheon/pull/738) - Update IbftBlockHeigntManager to accept new message types. [\#737](https://github.com/PegaSysEng/pantheon/pull/737) - Error response handling for permissions APIs [\#736](https://github.com/PegaSysEng/pantheon/pull/736) - IPV6 bootnodes don't work [\#735](https://github.com/PegaSysEng/pantheon/pull/735) - Updated to use tags of pantheon build rather than another repo [\#734](https://github.com/PegaSysEng/pantheon/pull/734) - Log milestones at startup and other minor logging improvements [\#733](https://github.com/PegaSysEng/pantheon/pull/733) - Create wrapper types for Ibft Signed messages [\#731](https://github.com/PegaSysEng/pantheon/pull/731) - Ibft to uniquely ID messages by their hash [\#730](https://github.com/PegaSysEng/pantheon/pull/730) - Rename ibftrevised to ibft2 [\#722](https://github.com/PegaSysEng/pantheon/pull/722) - Limit ibft msg queues [\#704](https://github.com/PegaSysEng/pantheon/pull/704) - Implement privacy precompiled contract [\#696](https://github.com/PegaSysEng/pantheon/pull/696) (thanks to [Puneetha17](https://github.com/Puneetha17)) - Integration of RecursivePeerRefreshState and PeerDiscoveryController [\#420](https://github.com/PegaSysEng/pantheon/pull/420) ## 0.9.1 Built and compatible with with JDK8. ## 0.9 ### Breaking Changes to Command Line Breaking changes have been made to the command line options in v0.9 to improve usability. Many v0.8 command line options no longer work. The [documentation](https://docs.pantheon.pegasys.tech/en/latest/) has been updated throughout to use the changed command line options and the [command line reference](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/) documents the changed options. | Previous Option | New Option | Change | |-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------| | `--config` | [`--config-file`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#config-file) | Renamed | | `--datadir` | [`--data-path`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#data-path) | Renamed | | `--dev-mode` | [`--network=dev`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#network) | Replaced by `--network` option | | `--genesis` | [`--genesis-file`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#genesis-file) | Renamed | | `--goerli` | [`--network=goerli`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#network) | Replaced by `--network` option | | `--metrics-listen=` | [`--metrics-host=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#metrics-host) and [`--metrics-port=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#metrics-port) | Split into host and port options | | `--miner-extraData` | [`--miner-extra-data`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#miner-extra-data) | Renamed | | `--miner-minTransactionGasPriceWei` | [`--min-gas-price`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#min-gas-price) | Renamed | | `--no-discovery` | [`--discovery-enabled`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#discovery-enabled) | Replaced | | `--node-private-key` | [`--node-private-key-file`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#node-private-key-file) | Renamed | | `--ottoman` | N/A | Removed | | `--p2p-listen=` | [`--p2p-host=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#p2p-host) and [`--p2p-port=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#p2p-port) | Split into host and port options | | `--rinkeby` | [`--network=rinkeby`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#network) | Replaced by `--network` option | | `--ropsten` | [`--network=ropsten`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#network) | Replaced by `--network` option | | `--rpc-enabled` | [` --rpc-http-enabled`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-http-enabled)| Renamed| | `--rpc-listen=` | [`--rpc-http-host=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-http-host) and [`--rpc-http-port=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-http-port) | Split into host and port options | | `--rpc-api` | [`--rpc-http-api`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-http-api)| Renamed | | `--rpc-cors-origins` | [`--rpc-http-cors-origins`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-http-cors-origins) | Renamed | | `--ws-enabled` | [`--rpc-ws-enabled`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-ws-enabled) | Renamed | | `--ws-api` | [`--rpc-ws-api`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-ws-api) | Renamed| | `--ws-listen=` | [`--rpc-ws-host=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-ws-host) and [`--rpc-ws-port=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-ws-port) | Split into host and port options | | `--ws-refresh-delay` | [`--rpc-ws-refresh-delay`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#rpc-ws-refresh-delay)|Renamed| | Previous Subcommand | New Subcommand | Change | |-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------| | `pantheon import ` | [`pantheon blocks import --from=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#blocks) | Renamed | | `pantheon export-pub-key `| [`pantheon public-key export --to=`](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#public-key) | Renamed | ### Private Network Quickstart The Private Network Quickstart has been moved from the `pantheon` repository to the `pantheon-quickstart` repository. The [Private Network Quickstart tutorial](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Private-Network-Quickstart/) has been updated to use the moved quickstart. ### Additions and Improvements - `--network=goerli` supports relaunch of Görli testnet [\#717](https://github.com/PegaSysEng/pantheon/pull/717) - TOML authentication provider [\#689](https://github.com/PegaSysEng/pantheon/pull/689) - Metrics Push Gateway Options [\#678](https://github.com/PegaSysEng/pantheon/pull/678) - Additional logging details for IBFT 2.0 [\#650](https://github.com/PegaSysEng/pantheon/pull/650) - Permissioning config TOML file [\#643](https://github.com/PegaSysEng/pantheon/pull/643) - Added metrics Prometheus Push Gateway Support [\#638](https://github.com/PegaSysEng/pantheon/pull/638) - Clique and IBFT not enabled by default in RPC APIs [\#635](https://github.com/PegaSysEng/pantheon/pull/635) - Added `admin_addPeer` JSON-RPC API method [\#622](https://github.com/PegaSysEng/pantheon/pull/622) - Implemented `--p2p-enabled` configuration item [\#619](https://github.com/PegaSysEng/pantheon/pull/619) - Command options and commands renaming [\#618](https://github.com/PegaSysEng/pantheon/pull/618) - Added IBFT get pending votes [\#603](https://github.com/PegaSysEng/pantheon/pull/603) - Implement Petersburg hardfork [\#601](https://github.com/PegaSysEng/pantheon/pull/601) - Added private transaction abstraction [\#592](https://github.com/PegaSysEng/pantheon/pull/592) (thanks to [iikirilov](https://github.com/iikirilov)) - Added privacy command line commands [\#584](https://github.com/PegaSysEng/pantheon/pull/584) (thanks to [Puneetha17](https://github.com/Puneetha17)) - Documentation updates include: - Updated [Private Network Quickstart tutorial](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Private-Network-Quickstart/) to use quickstart in `pantheon-quickstart` repository and indicate that the quickstart is not supported on Windows. - Added IBFT 2.0 [content](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/IBFT/) and [JSON RPC API methods](https://docs.pantheon.pegasys.tech/en/latest/Reference/JSON-RPC-API-Methods/#ibft-20-methods). - Added [consensus protocols content](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/Comparing-PoA/). - Added content on [events and logs](https://docs.pantheon.pegasys.tech/en/latest/Using-Pantheon/Events-and-Logs/), and [using filters](https://docs.pantheon.pegasys.tech/en/latest/Using-Pantheon/Accessing-Logs-Using-JSON-RPC/). - Added content on integrating with [Prometheus Push Gateway](https://docs.pantheon.pegasys.tech/en/latest/Using-Pantheon/Debugging/#running-prometheus-with-pantheon-in-push-mode) ### Technical Improvements - Download receipts during fast sync and import without processing transactions [\#701](https://github.com/PegaSysEng/pantheon/pull/701) - Removed CLI options for `--nodes-whitelist` and `--accounts-whitelist` [\#694](https://github.com/PegaSysEng/pantheon/pull/694) - Delegate `getRootCause` through to Guava's implementation [\#692](https://github.com/PegaSysEng/pantheon/pull/692) - Benchmark update [\#691](https://github.com/PegaSysEng/pantheon/pull/691) - Implement chain download for fast sync [\#690](https://github.com/PegaSysEng/pantheon/pull/690) - Allow missing accounts to create zero-cost transactions [\#685](https://github.com/PegaSysEng/pantheon/pull/685) - Node private key location should be fixed under docker [\#684](https://github.com/PegaSysEng/pantheon/pull/684) - Parallel Processing File Import Performance [\#683](https://github.com/PegaSysEng/pantheon/pull/683) - Integrate actual `WorldStateDownloader` with the fast sync work flow [\#682](https://github.com/PegaSysEng/pantheon/pull/682) - Removed `--max-trailing-peers` option [\#680](https://github.com/PegaSysEng/pantheon/pull/680) - Enabled warning on CLI dependent options [\#679](https://github.com/PegaSysEng/pantheon/pull/679) - Update WorldStateDownloader run\(\) interface to accept header [\#677](https://github.com/PegaSysEng/pantheon/pull/677) - Fixed Difficulty calculator [\#663](https://github.com/PegaSysEng/pantheon/pull/663) - `discovery-enabled` option refactoring [\#661](https://github.com/PegaSysEng/pantheon/pull/661) - Update orion default port approach [\#660](https://github.com/PegaSysEng/pantheon/pull/660) - Extract out generic parts of Downloader [\#659](https://github.com/PegaSysEng/pantheon/pull/659) - Start world downloader [\#658](https://github.com/PegaSysEng/pantheon/pull/658) - Create a simple `WorldStateDownloader` [\#657](https://github.com/PegaSysEng/pantheon/pull/657) - Added handling for when p2p is disabled [\#655](https://github.com/PegaSysEng/pantheon/pull/655) - Enabled command line configuration for privacy precompiled contract address [\#653](https://github.com/PegaSysEng/pantheon/pull/653) (thanks to [Puneetha17](https://github.com/Puneetha17)) - IBFT transmitted packets are logged by gossiper [\#652](https://github.com/PegaSysEng/pantheon/pull/652) - `admin_addPeer` acceptance test [\#651](https://github.com/PegaSysEng/pantheon/pull/651) - Added `p2pEnabled` configuration to `ProcessPantheonNodeRunner` [\#649](https://github.com/PegaSysEng/pantheon/pull/649) - Added description to automatic benchmarks [\#646](https://github.com/PegaSysEng/pantheon/pull/646) - Added `network` option [\#645](https://github.com/PegaSysEng/pantheon/pull/645) - Remove OrionConfiguration [\#644](https://github.com/PegaSysEng/pantheon/pull/644) (thanks to [Puneetha17](https://github.com/Puneetha17)) - IBFT Json Acceptance tests [\#634](https://github.com/PegaSysEng/pantheon/pull/634) - Upgraded build image to one that contains libsodium [\#632](https://github.com/PegaSysEng/pantheon/pull/632) - Command line fixes [\#630](https://github.com/PegaSysEng/pantheon/pull/630) - Consider peer count insufficient until minimum peers for fast sync are connected [\#629](https://github.com/PegaSysEng/pantheon/pull/629) - Build tweaks [\#628](https://github.com/PegaSysEng/pantheon/pull/628) - IBFT ensure non-validator does not partake in consensus [\#627](https://github.com/PegaSysEng/pantheon/pull/627) - Added ability in acceptance tests to set up a node with `--no-discovery` [\#624](https://github.com/PegaSysEng/pantheon/pull/624) - Gossip integration test [\#623](https://github.com/PegaSysEng/pantheon/pull/623) - Removed quickstart code and CI pipeline [\#616](https://github.com/PegaSysEng/pantheon/pull/616) - IBFT Integration Tests - Spurious Behaviour [\#615](https://github.com/PegaSysEng/pantheon/pull/615) - Refactoring for more readable IBFT IT [\#614](https://github.com/PegaSysEng/pantheon/pull/614) - Start of fast sync downloader [\#613](https://github.com/PegaSysEng/pantheon/pull/613) - Split `IbftProcessor` into looping and event processing [\#612](https://github.com/PegaSysEng/pantheon/pull/612) - IBFT Int Test - changed `TestContextFactory` to a builder [\#611](https://github.com/PegaSysEng/pantheon/pull/611) - Discard prior round change msgs [\#610](https://github.com/PegaSysEng/pantheon/pull/610) - `IbftGetValidatorsByBlockHash` added to json factory [\#607](https://github.com/PegaSysEng/pantheon/pull/607) - IBFT Validator RPCs to return list of strings [\#606](https://github.com/PegaSysEng/pantheon/pull/606) - Update Benchmark [\#605](https://github.com/PegaSysEng/pantheon/pull/605) - Remove db package and move classes to more appropriate locations [\#599](https://github.com/PegaSysEng/pantheon/pull/599) - Added `GetReceiptsFromPeerTask` [\#598](https://github.com/PegaSysEng/pantheon/pull/598) - Added `GetNodeDataFromPeerTask` [\#597](https://github.com/PegaSysEng/pantheon/pull/597) - Fixed deprecation warnings [\#596](https://github.com/PegaSysEng/pantheon/pull/596) - IBFT Integration Tests - Future Height [\#591](https://github.com/PegaSysEng/pantheon/pull/591) - Added `getNodeData` to `EthPeer` to enable requesting node data [\#589](https://github.com/PegaSysEng/pantheon/pull/589) - `Blockcreator` to use `parentblock` specified at constuction [\#588](https://github.com/PegaSysEng/pantheon/pull/588) - Support responding to `GetNodeData` requests [\#587](https://github.com/PegaSysEng/pantheon/pull/587) - IBFT validates block on proposal reception [\#583](https://github.com/PegaSysEng/pantheon/pull/583) - Rework `NewRoundValidator` tests [\#582](https://github.com/PegaSysEng/pantheon/pull/582) - IBFT split extra data validation rule into components [\#581](https://github.com/PegaSysEng/pantheon/pull/581) - Allow attached rules to be flagged `light` [\#580](https://github.com/PegaSysEng/pantheon/pull/580) - Split Block Validation from Importing [\#579](https://github.com/PegaSysEng/pantheon/pull/579) - Refactor `RoundChangeManager` creation [\#578](https://github.com/PegaSysEng/pantheon/pull/578) - Add `-SNAPSHOT` postfix to version [\#577](https://github.com/PegaSysEng/pantheon/pull/577) - IBFT - prevent proposed block being imported twice [\#576](https://github.com/PegaSysEng/pantheon/pull/576) - Version upgrades [\#571](https://github.com/PegaSysEng/pantheon/pull/571) - Tests that CLI options are disabled under docker [\#566](https://github.com/PegaSysEng/pantheon/pull/566) - Renamed IBFT networking classes [\#555](https://github.com/PegaSysEng/pantheon/pull/555) - Removed dead code from the consensus package [\#554](https://github.com/PegaSysEng/pantheon/pull/554) - Prepared private transaction support [\#538](https://github.com/PegaSysEng/pantheon/pull/538) (thanks to [iikirilov](https://github.com/iikirilov)) ## 0.8.5 Indefinitely delays the roll-out of Constantinople on Ethereum Mainnet due to a [potential security issue](https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement/) detected. ## Additions and Improvements - Remove Constantinople fork block [\#574](https://github.com/PegaSysEng/pantheon/pull/574) ## Technical Improvements - Rename IBFT message packages [\#568](https://github.com/PegaSysEng/pantheon/pull/568) ## 0.8.4 ### Docker Image If you have been running a node using the v0.8.3 Docker image, the node was not saving data to the specified [data directory](https://docs.pantheon.pegasys.tech/en/latest/Getting-Started/Run-Docker-Image/#data-directory), or referring to the custom [configuration file](https://docs.pantheon.pegasys.tech/en/latest/Getting-Started/Run-Docker-Image/#custom-configuration-file) or [genesis file](https://docs.pantheon.pegasys.tech/en/latest/Getting-Started/Run-Docker-Image/#custom-genesis-file). To recover the node key and data directory from the Docker container: `docker cp :/opt/pantheon/key ` `docker cp :/opt/pantheon/database ` Where `container` is the name or ID of the Docker container containing the Pantheon node. The container can be running or stopped when you copy the key and data directory. If your node was fully synchronized to MainNet, the data directory will be ~2TB. When restarting your node with the v0.8.4 Docker image: * Save the node key in the [`key` file](https://docs.pantheon.pegasys.tech/en/latest/Configuring-Pantheon/Node-Keys/#node-private-key) in the data directory or specify the location using the [`--node-private-key` option](https://docs.pantheon.pegasys.tech/en/latest/Configuring-Pantheon/Node-Keys/#specifying-a-custom-node-private-key-file). * Specify the `