Trinity¶
Unreleased (latest source)¶
0.1.0-alpha.23¶
Released 2019-02-28
- #337: Feature: Support for ConstantinopleV2 aka Petersburg aka ConstantinopleFix
- #270: Performance: Persist information on peers between runs
- #268: Maintenance: Add more bootnodes, use all the Geth and Parity bootnodes
- #263: Performance: Upgrade to lahja 0.11.0 and get rid of EventBus coordinator process
- #227: Bugfix: Do not accidentially create many processes that sit idle
- #227: Tests: Cover APIs that also hit the database in trinity attach tests
- #155: Feature: Disable syncing entirely with –sync-mode none
- #155: Feature: Allow running –sync-mode full directly
- #155: Feature: Allow plugins to extend –sync-mode with different strategies
- #236: Performance: Quicker pruning of in-memory headers, was a leading asyncio bottleneck
- #236: Bugfix: Several reliability improvements during sync
0.1.0-alpha.20¶
Released December 13, 2018
- #1579: Feature: Full Constantinople support, with all* tests passing
- #1590: Performance: CodeStream speedup
- #1576: Bugfix: require recent enough py-ecc to avoid busted py-ecc release (see #1572)
- #1577: Maintenance: Show state diffs on all state failures (see #1573)
- #1570: Maintenance: Cleanup sporadic unclean shutdown of peer request
- #1580: Maintenance: The logged delta in expected vs actual account balance was backwards
- #1573: Maintenance: Display state diffs on failing tests, for much easier EVM debugging
- #1567: Performance: Reduce event bus traffic by enabling point-to-point communication
- #1569: Bugfix: Increase Kademlia timeouts to work on high-latency networks
- #1530: Maintenance: Rename logging level from
trace(reserved for EVM tracing) todebug2 - #1553: Maintenance: Dynamically tune peer timeouts with historical latency (also #1583)
- #1560: Bugfix: Constantinople CREATE2 gas usage
- #1559: Feature: Mainnet configuration now defaults to Constantinople rules at 7080000
- #1557: Docs: Clarify that local plugins must be installed with
-e - #1538: Maintenance: Variety of dependency resolution warning cleanups
- #1549: Maintenance: Separate Plugin space for
trinityandtrinity-beacon - #1554: Maintenance: Enable asynchronous iterators that can be cancelled by a service
- #1523: Maintenance: Much faster testing of valid PoW chains
- #1536: Maintenance: Add
trinity-beaconcommand as a placeholder for future Beacon Chain - #1500: Performance: Be smarter about validating the bloom filter, to avoid duplicate hashing
- #1537: Maintenance: Use new event bus feature to avoid the old hack for clean shutdown
- #1544: Docs: Quickstart fix – use
trinity attachinstead of console - #1541: Docs: Simplify and de-duplicate readme
- #1533: Bugfix: Light chain data lookups regressed during genesis file feature. Fixed
- #1524: Bugfix: Validate header chain continuity during light sync
- #1528: Maintenance: Computation code reorg and gas logging bugfix
- #1522: Bugfix: Increase the system recursion limit for EVM requirements, but never decrease it
- #1519: Docs: Document why we must spawn instead of fork on linux (spoiler: asyncio)
- #1516: Maintenance: Add test for
trinity attach - #1299: Feature: Launch via custom genesis file (See EIP proposal)
- #1496: Bugfix: Regular chain sync crash
- The research team has started adding Beacon Chain code to the underlying py-evm repo. It’s all a work in progress, but for those who like to follow along:
0.1.0-alpha.18,19¶
That sound you make when you burp in the middle of a hiccup. Hiccurp?
0.1.0-alpha.17¶
Released November 20, 2018
- #1488: Bugfix: Bugfix for state sync to limit the number of open files.
- #1478: Maintenance: Improve logging messages during fast sync to include performance metrics
- #1476: Bugfix: Ensure that network connections are properly close when a peer doesn’t successfully complete the handshake.
- #1474: Bugfix: EthStats fix for displaying correct uptime metrics
- #1471: Maintenance: Upgrade
mypyto0.641 - #1469: Maintenance: Add logging to show when fast sync has completed.
- #1467: Bugfix: Don’t add peers which disconnect during the boot process to the peer pool.
- #1465: Bugfix: Proper handling for when
SIGTERMis sent to the main Trinity process. - #1463: Bugfix: Better handling for bad server responses by EthStats client.
- #1443: Maintenance: Merge the
--nodekeyand--nodekey-pathflags. - #1438: Bugfix: Remove warnings when printing the ASCII Trinity header
- #1437: Maintenance: Update to use f-strings for string formatting
- #1435: Maintenance: Enable Constantinople fork on Ropsten chain
- #1434: Bugfix: Fix incorrect mainnet genesis parameters.
- #1421: Maintenance: Implement
eth_syncingJSON-RPC endpoint - #1410: Maintenance: Implement EIP1283 for updated logic for
SSTOREopcode gas costs. - #1395: Bugfix: Fix gas cost calculations for
CREATE2opcode - #1386: Maintenance: Trinity now prints a message to make it more clear why Trinity was shutdown.
- #1387: Maintenance: Use colorized output for
WARNINGandERRORlevel logging messages. - #1378: Bugfix: Fix address generation for
CREATE2opcode. - #1374: Maintenance: New
ChainTipMonitorservice to keep track of the highest TD chain tip. - #1371: Maintenance: Upgrade
mypyto0.630 - #1367: Maintenance: Improve logging output to include more contextual information
- #1361: Maintenance: Remove
HeaderRequestingPeerin favor ofBaseChainPeer - #1353: Maintenance: Decouple peer message handling from syncing.
- #1351: Bugfix: Unhandled
DecryptionError - #1348: Maintenance: Add default server URIs for mainnet and ropsten.
- #1347: Maintenance: Improve code organization within
trinitymodule - #1343: Bugfix: Rename
Chain.network_idto beChain.chain_id - #1342: Maintenance: Internal rename of
ChainConfigtoTrinityConfig - #1336: Maintenance: Implement plugin for EthStats reporting.
- #1335: Maintenance: Relax some constraints on the ordered task management constructs.
- #1332: Maintenance: Upgrade
pyrlpto1.0.3 - #1317: Maintenance: Extract peer selection from the header sync.
- #1312: Maintenance: Turn on warnings by default if in a prerelease
0.1.0-alpha.16¶
Released September 27, 2018
- #1332: Bugfix: Comparing rlp objects across processes used to fail sporadically, because of a changing object hash (fixed by upgrading pyrlp to 1.0.3)
- #1326: Maintenance: Squash a stack trace in the logs when a peer sends us an invalid public key during handshake
- #1325: Bugfix: When switching to a new peer to sync headers, it might have started from too far behind the tip, and get stuck
- #1327: Maintenance: Squash some log warnings from trying to make a request to a peer (or receive a response) while it is shutting down
- #1321: Bugfix: Address a couple race condition exceptions when syncing headers from a new peer, and other downstream processing is in progress
- #1316: Maintenance: Reduce size of images in documentation
- #1313: Maintenance: Remove miscellaneous things that are generating python warnings (eg~ using deprecated methods)
- #1279: Reliability: Atomically persist when storing: a block, a chain of headers, or a cluster of trie nodes
- #1304: Maintenance: Refactor AtomicDB to return an explict database instance to write into
- #1296: Maintenance: Require new AtomicDB in chain and header DB layers
- #1295: Maintenance: New AtomicDB interface to enable a batch of atomic writes (all succeed or all fail)
- #1290: Bugfix: more graceful recovery when re-launching sync on a fork
- #1277: Maintenance: add a cancellable
call_laterto all services - #1226: Performance: enable multiple peer requests to a single fast peer when other peers are slow
- #1254: Bugfix: peer selection when two peers have exactly the same throughput
- #1253: Maintenance: prefer f-string formatting in p2p, trinity code
0.1.0-alpha.15¶
- #1249: Misc bugfixes for fast sync reliability.
- #1245: Improved exception messaging for
BaseService - #1244: Use
time.perf_counterortime.monotonicovertime.time - #1242: Bugfix: Unhandled
MalformedMessage. - #1235: Typo cleanup.
- #1236: Documentation cleanup
- #1237: Code cleanup
- #1232: Bugfix: Correctly enforce timeouts on peer requests and add lock mechanism to support concurrency.
- #1229: CI cleanup
- #1228: Merge
KademliaProtocolandDiscoveryProtocol - #1225: Expand peer stats tracking
- #1221: Implement Discovery V5 Protocol
- #1219: Re-organize and document fixture filler tools
- #1214: Implement
BaseService.is_operational. - #1210: Convert sync to use streaming queue instead of batches.
- #1209: Chain Builder tool
- #1205: Bugfix: ExchangeHandler stats crash
- #1204: Consensus bugfix for uncle validation
- #1151: Change to
import_blockto return chain re-organization data. - #1197: Increase wait time for database IPC socket.
- #1194: Unify
ValidationErrorto useeth-utilsexception class. - #1190: Improved testing for peer authentication
- #1189: Detect crashed sub-services and exit
- #1179:
LightNodenow usesServerfor incoming peer connections. - #1182: Convert
fix-unclean-shutdownCLI command to be a plugin
0.1.0-alpha.14¶
- #1081 #1115 #1116: Reduce logging output during state sync.
- #1063 #1035 #1089 #1131 #1132 #1138 #1149 #1159: Implement round trip request/response API.
- #1094 #1124: Make the node processing during state sync more async friendly.
- #1097: Keep track of which peers are missing trie nodes during state sync.
- #1109 #1135: Python 3.7 testing and experimental support.
- #1136 #1120: Module re-organization in preparation of extracting
p2pandtrinitymodules. - #1137: Peer subscriber API now supports specifying specific msg types to reduce msg queue traffic.
- #1142 #1165: Implement JSON-RPC endpoints for:
eth_estimateGas,eth_accounts,eth_call - #1150 #1176: Better handling of malformed messages from peers.
- #1157: Use shared pool of workers across all services.
- #1158: Support specifying granular logging levels via CLI.
- #1161: Use a tmpfile based LevelDB database for cache during state sync to reduce memory footprint.
- #1166: Latency and performance tracking for peer requests.
- #1173: Better APIs for background task running for
Serviceclasses. - #1182: Convert
fix-unclean-shutdowncommand to be a plugin.
0.1.0-alpha.13¶
- Remove specified
eth-accountdependency in favor of allowingweb3.pyspecify the correct version.
0.1.0-alpha.12¶
- #1058 #1044: Add
fix-unclean-shutdownCLI command for cleaning up after a dirty shutdown of thetrinityCLI process. - #1041: Bugfix for ensuring CPU count for process pool is always greater than
0 - #1010: Performance tuning during fast sync. Only check POW on a subset of the received headers.
- #996 Experimental new Plugin API: Both the transaction pool and the
consoleandattachcommands are now written as plugins. - #898: New experimental transaction pool. Disabled by default. Enable with
--tx-pool. (warning: has known issues that effect sync performance) - #935: Protection against eclipse attacks.
- #869: Ensure connected peers are on the same side of the DAO fork.
Minor Changes
- #1081: Reduce
DEBUGlog output during state sync. - #1071: Minor fix for how version string is generated for trinity
- #1070: Easier profiling of
ChainSyncer - #1068: Optimize
evm.db.chain.ChainDB.persist_blockfor common case. - #1057: Additional
DEBUGlogging of peer uptime and msg stats. - #1049: New integration test suite for trinity CLI
- #1045 #1051: Bugfix for generation of block numbers for
GetBlockHeadersrequests. - #1011: Workaround for parity bug parity #8038
- #987: Now serving requests from peers during fast sync.
- #971 #909 #650: Benchmarking test suite.
- #968: When launching
consoleandattachcommands, check for presence of IPC socket and log informative message if not found. - #934: Decouple the
DiscoveryandPeerPoolservices. - #913: Add validation of retrieved contract code when operating in
--lightmode. - #908: Bugfix for transitioning from syncing chain data to state data during fast sync.
- #905: Support for multiple UPNP devices.
0.1.0-alpha.11¶
- Bugfix for
PreferredNodePeerPoolto respectmax_peers
0.1.0-alpha.10¶
- More bugfixes to enforce
--max-peersinPeerPool._connect_to_nodes
0.1.0-alpha.9¶
- Bugfix to enforce
--max-peersfor incoming connections.
0.1.0-alpha.7¶
- Remove
min_peersconcept fromPeerPool - Add
--max-peersand enforcement of maximum peer connections maintained by thePeerPool.
0.1.0-alpha.6¶
- Respond to
GetBlockHeadersmessage during fast sync to prevent being disconnected as a useless peer. - Add
--profileCLI flag to Trinity to enable profiling viacProfile - Better error messaging with Trinity cannot determine the appropriate location for the data directory.
- Handle
ListDeserializationErrorduring handshake. - Add
net_versionJSON-RPC endpoint. - Add
web3_clientVersionJSON-RPC endpoint. - Handle
rlp.DecodingErrorduring handshake.