@ -1,5 +1,181 @@
# Changelog
## 1.0.2
### Additions and Improvements
- Removed DB init when using `public-key` subcommand [\#1049 ](https://github.com/PegaSysEng/pantheon/pull/1049 )
- Output enode URL on startup [\#1137 ](https://github.com/PegaSysEng/pantheon/pull/1137 )
- Added Remove Peer JSON-RPC [\#1129 ](https://github.com/PegaSysEng/pantheon/pull/1129 )
- Added `net_enode` JSON-RPC [\#1119 ](https://github.com/PegaSysEng/pantheon/pull/1119 ) (thanks to [mbergstrand ](https://github.com/mbergstrand ))
- Maintain a `staticnodes.json` [\#1106 ](https://github.com/PegaSysEng/pantheon/pull/1106 )
- Added `tx-pool-max-size` command line parameter [\#1078 ](https://github.com/PegaSysEng/pantheon/pull/1078 )
- Added PendingTransactions JSON-RPC [\#1043 ](https://github.com/PegaSysEng/pantheon/pull/1043 ) (thanks to [EdwinLeeGreene ](https://github.com/EdwinLeeGreene ))
- Added `admin_nodeInfo` JSON-RPC [\#1012 ](https://github.com/PegaSysEng/pantheon/pull/1012 )
- Added `--metrics-category` CLI to only enable select metrics [\#969 ](https://github.com/PegaSysEng/pantheon/pull/969 )
- Documentation updates include:
- Updated endpoints in [Private Network Quickstart ](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Private-Network-Quickstart/ ) (thanks to [laubai ](https://github.com/laubai ))
- Updated [documentation contribution guidelines ](https://github.com/PegaSysEng/pantheon/blob/master/DOC-STYLE-GUIDE.md )
- Added [`admin_removePeer` ](https://docs.pantheon.pegasys.tech/en/latest/Reference/JSON-RPC-API-Methods/#admin_removepeer )
- Updated [tutorials ](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-Private-Clique-Network/ ) for printing of enode on startup
- Added [`txpool_pantheonTransactions` ](https://docs.pantheon.pegasys.tech/en/latest/Reference/JSON-RPC-API-Methods/#txpool_pantheontransactions )
- Added [Transaction Pool content ](https://docs.pantheon.pegasys.tech/en/latest/Using-Pantheon/Transactions/Transaction-Pool/ )
- Added [`tx-pool-max-size` CLI option ](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#tx-pool-max-size )
- Updated [developer build instructions to use installDist ](https://github.com/PegaSysEng/pantheon/blob/master/docs/development/running-developer-builds.md )
- Added [Azure quickstart tutorial ](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Azure/Azure-Private-Network-Quickstart/ )
- Enabled copy button in code blocks
- Added [IBFT 1.0 ](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/QuorumIBFT/ )
- Added section on using [Geth attach with Pantheon ](https://docs.pantheon.pegasys.tech/en/latest/JSON-RPC-API/Using-JSON-RPC-API/#geth-console )
- Enabled the edit link doc site to ease external doc contributions
- Added [EthStats docs ](https://docs.pantheon.pegasys.tech/en/latest/EthStats/Overview/ ) (thanks to [baxy ](https://github.com/baxy ))
- Updated [Postman collection ](https://docs.pantheon.pegasys.tech/en/latest/JSON-RPC-API/Using-JSON-RPC-API/#postman )
- Added [`metrics-category` CLI option ](https://docs.pantheon.pegasys.tech/en/latest/Reference/Pantheon-CLI-Syntax/#metrics-category )
- Added information on [block time and timeout settings ](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/IBFT/#block-time ) for IBFT 2.0
- Added [`admin_nodeInfo` ](https://docs.pantheon.pegasys.tech/en/latest/Reference/JSON-RPC-API-Methods/#admin_nodeinfo )
- Added [permissions images ](https://docs.pantheon.pegasys.tech/en/latest/Permissions/Permissioning/ )
- Added permissioning blog to [Resources ](https://docs.pantheon.pegasys.tech/en/latest/Resources/Resources/ )
- Updated [Create Permissioned Network ](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-Permissioned-Network/ ) tutorial to use `export-address`
- Updated [Clique ](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/Clique/ ) and [IBFT 2.0 ](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/IBFT/ ) docs to include complete genesis file
- Updated [Clique tutorial ](https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Create-Private-Clique-Network/ ) to use `export-address` subcommand
- Added IBFT 2.0 [future message configuration options ](https://docs.pantheon.pegasys.tech/en/latest/Consensus-Protocols/IBFT/#optional-configuration-options )
### Technical Improvements
- Fixed so self persists to the whitelist [\#1176 ](https://github.com/PegaSysEng/pantheon/pull/1176 )
- Fixed to add self to permissioning whitelist [\#1175 ](https://github.com/PegaSysEng/pantheon/pull/1175 )
- Fixed permissioning issues [\#1174 ](https://github.com/PegaSysEng/pantheon/pull/1174 )
- AdminAddPeer returns custom Json RPC error code [\#1171 ](https://github.com/PegaSysEng/pantheon/pull/1171 )
- Periodically connect to peers from table [\#1170 ](https://github.com/PegaSysEng/pantheon/pull/1170 )
- Improved bootnodes option error message [\#1092 ](https://github.com/PegaSysEng/pantheon/pull/1092 )
- Automatically restrict trailing peers while syncing [\#1167 ](https://github.com/PegaSysEng/pantheon/pull/1167 )
- Avoid bonding to ourselves [\#1166 ](https://github.com/PegaSysEng/pantheon/pull/1166 )
- Fix Push Metrics [\#1164 ](https://github.com/PegaSysEng/pantheon/pull/1164 )
- Synchroniser waits for new peer if best is up to date [\#1161 ](https://github.com/PegaSysEng/pantheon/pull/1161 )
- Don't attempt to download checkpoint headers if the number of headers is negative [\#1158 ](https://github.com/PegaSysEng/pantheon/pull/1158 )
- Capture metrics on Vertx event loop and worker thread queues [\#1155 ](https://github.com/PegaSysEng/pantheon/pull/1155 )
- Simplify node permissioning ATs [\#1153 ](https://github.com/PegaSysEng/pantheon/pull/1153 )
- Add metrics around discovery process [\#1152 ](https://github.com/PegaSysEng/pantheon/pull/1152 )
- Prevent connecting to self [\#1150 ](https://github.com/PegaSysEng/pantheon/pull/1150 )
- Refactoring permissioning ATs [\#1148 ](https://github.com/PegaSysEng/pantheon/pull/1148 )
- Added two extra Ropsten bootnodes [\#1147 ](https://github.com/PegaSysEng/pantheon/pull/1147 )
- Fixed TCP port handling [\#1144 ](https://github.com/PegaSysEng/pantheon/pull/1144 )
- Better error on bad header [\#1143 ](https://github.com/PegaSysEng/pantheon/pull/1143 )
- Refresh peer table while we have fewer than maxPeers connected [\#1142 ](https://github.com/PegaSysEng/pantheon/pull/1142 )
- Refactor jsonrpc consumption of local node permissioning controller [\#1140 ](https://github.com/PegaSysEng/pantheon/pull/1140 )
- Disconnect peers before the pivot block while fast syncing [\#1139 ](https://github.com/PegaSysEng/pantheon/pull/1139 )
- Reduce the default transaction pool size from 30,000 to 4096 [\#1136 ](https://github.com/PegaSysEng/pantheon/pull/1136 )
- Fail at load if static nodes not whitelisted [\#1135 ](https://github.com/PegaSysEng/pantheon/pull/1135 )
- Fix private transaction acceptance test [\#1134 ](https://github.com/PegaSysEng/pantheon/pull/1134 ) (thanks to [Puneetha17 ](https://github.com/Puneetha17 ))
- Quieter exceptions when network is unreachable [\#1133 ](https://github.com/PegaSysEng/pantheon/pull/1133 )
- nodepermissioningcontroller used for devp2p connection filtering [\#1132 ](https://github.com/PegaSysEng/pantheon/pull/1132 )
- Remove duplicates from apis specified via CLI [\#1131 ](https://github.com/PegaSysEng/pantheon/pull/1131 )
- Synchronizer returns false if it is in sync [\#1130 ](https://github.com/PegaSysEng/pantheon/pull/1130 )
- Added fromHexStringStrict to check for exactly 20 byte addresses [\#1128 ](https://github.com/PegaSysEng/pantheon/pull/1128 )
- Fix deadlock scenario in AsyncOperationProcessor and re-enable WorldStateDownloaderTest [\#1126 ](https://github.com/PegaSysEng/pantheon/pull/1126 )
- Ignore WorldStateDownloaderTest [\#1125 ](https://github.com/PegaSysEng/pantheon/pull/1125 )
- Updated local config permissioning flags [\#1118 ](https://github.com/PegaSysEng/pantheon/pull/1118 )
- Pipeline Improvements [\#1117 ](https://github.com/PegaSysEng/pantheon/pull/1117 )
- Permissioning cli smart contract [\#1116 ](https://github.com/PegaSysEng/pantheon/pull/1116 )
- Adding default pending transactions value in PantheonControllerBuilder [\#1114 ](https://github.com/PegaSysEng/pantheon/pull/1114 )
- Fix intermittency in WorldStateDownloaderTest [\#1113 ](https://github.com/PegaSysEng/pantheon/pull/1113 )
- Reduce number of seen blocks and transactions Pantheon tracks [\#1112 ](https://github.com/PegaSysEng/pantheon/pull/1112 )
- Timeout long test [\#1111 ](https://github.com/PegaSysEng/pantheon/pull/1111 )
- Errorprone 2.3.3 upgrades [\#1110 ](https://github.com/PegaSysEng/pantheon/pull/1110 )
- Add metric to capture memory used by RocksDB table readers [\#1108 ](https://github.com/PegaSysEng/pantheon/pull/1108 )
- Don't allow creation of multiple gauges with the same name [\#1107 ](https://github.com/PegaSysEng/pantheon/pull/1107 )
- Update Peer Discovery to use NodePermissioningController [\#1105 ](https://github.com/PegaSysEng/pantheon/pull/1105 )
- Move starting world state download process inside WorldDownloadState [\#1104 ](https://github.com/PegaSysEng/pantheon/pull/1104 )
- Enable private Tx capability to Clique [\#1102 ](https://github.com/PegaSysEng/pantheon/pull/1102 ) (thanks to [Puneetha17 ](https://github.com/Puneetha17 ))
- Enable private Tx capability to IBFT [\#1101 ](https://github.com/PegaSysEng/pantheon/pull/1101 ) (thanks to [Puneetha17 ](https://github.com/Puneetha17 ))
- Version Upgrades [\#1100 ](https://github.com/PegaSysEng/pantheon/pull/1100 )
- Don't delete completed tasks from RocksDbTaskQueue [\#1099 ](https://github.com/PegaSysEng/pantheon/pull/1099 )
- Support flat mapping with multiple threads [\#1098 ](https://github.com/PegaSysEng/pantheon/pull/1098 )
- Add pipe stage name to thread while executing [\#1097 ](https://github.com/PegaSysEng/pantheon/pull/1097 )
- Use pipeline for world state download [\#1096 ](https://github.com/PegaSysEng/pantheon/pull/1096 )
- TXPool JSON RPC tweaks [\#1095 ](https://github.com/PegaSysEng/pantheon/pull/1095 )
- Add in-memory cache over world state download queue [\#1087 ](https://github.com/PegaSysEng/pantheon/pull/1087 )
- Trim default metrics [\#1086 ](https://github.com/PegaSysEng/pantheon/pull/1086 )
- Improve imported block log line [\#1085 ](https://github.com/PegaSysEng/pantheon/pull/1085 )
- Smart contract permission controller [\#1083 ](https://github.com/PegaSysEng/pantheon/pull/1083 )
- Add timeout when waiting for JSON-RPC, WebSocket RPC and Metrics services to stop [\#1082 ](https://github.com/PegaSysEng/pantheon/pull/1082 )
- Add pipeline framework to make parallel processing simpler [\#1077 ](https://github.com/PegaSysEng/pantheon/pull/1077 )
- Node permissioning controller [\#1075 ](https://github.com/PegaSysEng/pantheon/pull/1075 )
- Smart contract permission controller stub [\#1074 ](https://github.com/PegaSysEng/pantheon/pull/1074 )
- Expose a synchronous start method in Runner [\#1072 ](https://github.com/PegaSysEng/pantheon/pull/1072 )
- Changes in chain head should trigger new permissioning check for active peers [\#1071 ](https://github.com/PegaSysEng/pantheon/pull/1071 )
- Fix exceptions fetching metrics after world state download completes [\#1066 ](https://github.com/PegaSysEng/pantheon/pull/1066 )
- Accept transactions in the pool with nonce above account sender nonce [\#1065 ](https://github.com/PegaSysEng/pantheon/pull/1065 )
- Repair Istanbul to handle Eth/62 & Eth/63 [\#1063 ](https://github.com/PegaSysEng/pantheon/pull/1063 )
- Close Private Storage Provider [\#1059 ](https://github.com/PegaSysEng/pantheon/pull/1059 ) (thanks to [Puneetha17 ](https://github.com/Puneetha17 ))
- Add labels to Pipelined tasks metrics [\#1057 ](https://github.com/PegaSysEng/pantheon/pull/1057 )
- Re-enable Quorum Synchronisation [\#1056 ](https://github.com/PegaSysEng/pantheon/pull/1056 )
- Don't log expected failures as errors [\#1054 ](https://github.com/PegaSysEng/pantheon/pull/1054 )
- Make findSuitablePeer abstract [\#1053 ](https://github.com/PegaSysEng/pantheon/pull/1053 )
- Track added at in txpool [\#1048 ](https://github.com/PegaSysEng/pantheon/pull/1048 )
- Fix ImportBlocksTask to only request from peers that claim to have the blocks [\#1047 ](https://github.com/PegaSysEng/pantheon/pull/1047 )
- Don't run the dao block validator if dao block is 0 [\#1044 ](https://github.com/PegaSysEng/pantheon/pull/1044 )
- Don't make unnecessary copies of data in RocksDbKeyValueStorage [\#1040 ](https://github.com/PegaSysEng/pantheon/pull/1040 )
- Update discovery logic to trust bootnodes only when out of sync [\#1039 ](https://github.com/PegaSysEng/pantheon/pull/1039 )
- Fix IndexOutOfBoundsException in DetermineCommonAncestorTask [\#1038 ](https://github.com/PegaSysEng/pantheon/pull/1038 )
- Add `rpc_modules` JSON-RPC [\#1036 ](https://github.com/PegaSysEng/pantheon/pull/1036 )
- Simple permissioning smart contract [\#1035 ](https://github.com/PegaSysEng/pantheon/pull/1035 )
- Refactor enodeurl to use inetaddr [\#1032 ](https://github.com/PegaSysEng/pantheon/pull/1032 )
- Update CLI options in mismatched genesis file message [\#1031 ](https://github.com/PegaSysEng/pantheon/pull/1031 )
- Remove dependence of eth.core on eth.permissioning [\#1030 ](https://github.com/PegaSysEng/pantheon/pull/1030 )
- Make alloc optional and provide nicer error messages when genesis config is invalid [\#1029 ](https://github.com/PegaSysEng/pantheon/pull/1029 )
- Handle metrics request closing before response is generated [\#1028 ](https://github.com/PegaSysEng/pantheon/pull/1028 )
- Change EthNetworkConfig bootnodes to always be URIs [\#1027 ](https://github.com/PegaSysEng/pantheon/pull/1027 )
- Avoid port conflicts in acceptance tests [\#1025 ](https://github.com/PegaSysEng/pantheon/pull/1025 )
- Include reference tests in jacoco [\#1024 ](https://github.com/PegaSysEng/pantheon/pull/1024 )
- Acceptance test - configurable gas price [\#1023 ](https://github.com/PegaSysEng/pantheon/pull/1023 )
- Get Internal logs and output [\#1022 ](https://github.com/PegaSysEng/pantheon/pull/1022 ) (thanks to [Puneetha17 ](https://github.com/Puneetha17 ))
- Fix race condition in WebSocketService [\#1021 ](https://github.com/PegaSysEng/pantheon/pull/1021 )
- Ensure devp2p ports are written to ports file correctly [\#1020 ](https://github.com/PegaSysEng/pantheon/pull/1020 )
- Report the correct tcp port in PING packets when it differs from the UDP port [\#1019 ](https://github.com/PegaSysEng/pantheon/pull/1019 )
- Refactor transient transaction processor [\#1017 ](https://github.com/PegaSysEng/pantheon/pull/1017 )
- Resume world state download from existing queue [\#1016 ](https://github.com/PegaSysEng/pantheon/pull/1016 )
- IBFT Acceptance tests updated with longer timeout on first block [\#1015 ](https://github.com/PegaSysEng/pantheon/pull/1015 )
- Update IBFT acceptances tests to await first block [\#1013 ](https://github.com/PegaSysEng/pantheon/pull/1013 )
- Remove full hashimoto implementation as its never used [\#1011 ](https://github.com/PegaSysEng/pantheon/pull/1011 )
- Created SyncStatus notifications [\#1010 ](https://github.com/PegaSysEng/pantheon/pull/1010 )
- Address acceptance test intermittency [\#1008 ](https://github.com/PegaSysEng/pantheon/pull/1008 )
- Consider a world state download stalled after 100 requests with no progress [\#1007 ](https://github.com/PegaSysEng/pantheon/pull/1007 )
- Reduce log level when block miner is interrupted [\#1006 ](https://github.com/PegaSysEng/pantheon/pull/1006 )
- RunnerTest fail on Windows due to network startup timing issue [\#1005 ](https://github.com/PegaSysEng/pantheon/pull/1005 )
- Generate Private Contract Address [\#1004 ](https://github.com/PegaSysEng/pantheon/pull/1004 ) (thanks to [vinistevam ](https://github.com/vinistevam ))
- Delete the legacy pipelined import code [\#1003 ](https://github.com/PegaSysEng/pantheon/pull/1003 )
- Fix race condition in WebSocket AT [\#1002 ](https://github.com/PegaSysEng/pantheon/pull/1002 )
- Cleanup IBFT logging levels [\#995 ](https://github.com/PegaSysEng/pantheon/pull/995 )
- Integration Test implementation dependency for non-IntelliJ IDE [\#992 ](https://github.com/PegaSysEng/pantheon/pull/992 )
- Ignore fast sync and full sync tests to avoid race condition [\#991 ](https://github.com/PegaSysEng/pantheon/pull/991 )
- Make acceptance tests use the process based runner again [\#990 ](https://github.com/PegaSysEng/pantheon/pull/990 )
- RoundChangeCertificateValidator requires unique authors [\#989 ](https://github.com/PegaSysEng/pantheon/pull/989 )
- Make Rinkeby the benchmark chain. [\#986 ](https://github.com/PegaSysEng/pantheon/pull/986 )
- Add metrics to Parallel Download pipeline [\#985 ](https://github.com/PegaSysEng/pantheon/pull/985 )
- Change ExpectBlockNumber to require at least the specified block number [\#981 ](https://github.com/PegaSysEng/pantheon/pull/981 )
- Fix benchmark compilation [\#980 ](https://github.com/PegaSysEng/pantheon/pull/980 )
- RPC tests can use 127.0.0.1 loopback rather than localhost [\#974 ](https://github.com/PegaSysEng/pantheon/pull/974 ) (fixes [\#956 ](https://github.com/PegaSysEng/pantheon/issues/956 )[\#956 ](https://github.com/PegaSysEng/pantheon/issues/956 ) thanks to [glethuillier ](https://github.com/glethuillier ) for raising)
- Disable picocli ansi when testing [\#973 ](https://github.com/PegaSysEng/pantheon/pull/973 )
- Add a jmh benchmark for WorldStateDownloader [\#972 ](https://github.com/PegaSysEng/pantheon/pull/972 )
- Gradle dependency for JMH annotation, for IDEs that aren't IntelliJ \(… [\#971 ](https://github.com/PegaSysEng/pantheon/pull/971 )
- Separate download state tracking from WorldStateDownloader [\#967 ](https://github.com/PegaSysEng/pantheon/pull/967 )
- Gradle dependency for JMH annotation, for IDEs that aren't IntelliJ [\#966 ](https://github.com/PegaSysEng/pantheon/pull/966 )
- Truffle HDwallet Web3 1.0 [\#964 ](https://github.com/PegaSysEng/pantheon/pull/964 )
- Add missing JavaDoc tags in JSONToRLP [\#963 ](https://github.com/PegaSysEng/pantheon/pull/963 )
- Only import block if it isn't already on the block chain [\#962 ](https://github.com/PegaSysEng/pantheon/pull/962 )
- CLI stack traces when debugging [\#960 ](https://github.com/PegaSysEng/pantheon/pull/960 )
- Create peer discovery packets on a worker thread [\#955 ](https://github.com/PegaSysEng/pantheon/pull/955 )
- Remove start functionality from IbftController and IbftBlockHeightMan… [\#952 ](https://github.com/PegaSysEng/pantheon/pull/952 )
- Cleanup IBFT executors [\#951 ](https://github.com/PegaSysEng/pantheon/pull/951 )
- Single threaded world state persistence [\#950 ](https://github.com/PegaSysEng/pantheon/pull/950 )
- Fix version number on master [\#946 ](https://github.com/PegaSysEng/pantheon/pull/946 )
- Change automatic benchmark [\#945 ](https://github.com/PegaSysEng/pantheon/pull/945 )
- Eliminate redundant header validation [\#943 ](https://github.com/PegaSysEng/pantheon/pull/943 )
- RocksDbQueue Threading Tweaks [\#940 ](https://github.com/PegaSysEng/pantheon/pull/940 )
- Validate DAO block [\#939 ](https://github.com/PegaSysEng/pantheon/pull/939 )
- Complete Private Transaction Processor [\#938 ](https://github.com/PegaSysEng/pantheon/pull/938 ) (thanks to [iikirilov ](https://github.com/iikirilov ))
- Add metrics for netty queue length [\#932 ](https://github.com/PegaSysEng/pantheon/pull/932 )
- Update GetNodeDataFromPeerTask to return a map [\#931 ](https://github.com/PegaSysEng/pantheon/pull/931 )
## 1.0.1
Public key address export subcommand was missing in 1.0 release.