|
Ran
|
Jobs
1
|
Files
933
|
Run time
3min
|
Badge
README BADGES
|
push
github
checkpoint: into main from release/2.7.2 @ <a class=hub.com/Chia-Network/chia-blockchain/commit/715953bc5a20a7bac4a2462368d513cc9ef7f5aa">715953bc5 (#21110) Source hash: 715953bc5a20a7bac4a2462368d513cc9ef7f5aa Remaining commits: 1 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **High Risk** > Changes full-node sync banning, block prevalidation validation state, and wallet coin-state ingestion—security-critical paths with wide behavioral impact across nodes and wallets. > > **Overview** > This release merge adds **consensus and P2P defenses** plus broader wallet and validation hardening, with extensive regression tests. > > **Full node long sync** now snapshots peers that advertised the chosen peak (`get_advertisers_of_peak`) and, during peer confirmation, bans those advertisers if the block weight from `RequestBlock` does not match the advertised weight or if no peer can serve the peak—**before** weight-proof validation. `SyncStore` drops peers from old peaks when they move to a new `NewPeak`. Short backtrack block fetches use a **15s** timeout. > > **NewPeak admission control** drops inbound `NewPeak` when the limited semaphore is full and at least one outbound full-node peer exists; `LimitedSemaphore.locked()` supports this. > > **Block prevalidation** derives expected sub-slot iters/difficulty via `get_next_sub_slot_iters_and_difficulty` when a sub-slot announces changes, and simplifies `add_prevalidated_blocks` sub-slot handling. > > **Wallet**: bounded timestamp backtrack and stricter header-block validation (including peak-hash anchoring in `new_peak_wallet`); `PeerRequestCache` overwrites height timestamps correctly; untrusted `add_states_from_peer` returns **False** when any chunk’s `add_coin_states` fails or raises; new **`nft_auto_add_limit`** (default 100) caps auto-created DID-scoped NFT wallets; Data Layer **`make_update_offer`** rejects non-DL legs. > > **Utilities**: `PriorityMutex` waiters use `eq=False` so cancelling a non-first waiter does not strand the queue. > > Also adds coverage exclusi... (continued)
11099 of 12284 branches covered (90.35%)
Branch coverage included in aggregate %.
617 of 617 new or added lines in 18 files covered. (100.0%)
39 existing lines in 8 files now uncovered.115134 of 125321 relevant lines covered (91.87%)
1.84 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 22 |
77.42 |
-11.52% | chia/_tests/core/util/test_lockfile.py |
| 8 |
88.02 |
-0.17% | chia/full_node/full_node.py |
| 2 |
88.59 |
0.03% | chia/full_node/full_node_api.py |
| 2 |
79.19 |
-0.28% | chia/full_node/full_node_rpc_api.py |
| 2 |
99.69 |
-0.12% | chia/_tests/wallet/rpc/test_wallet_rpc.py |
| 1 |
97.14 |
-0.14% | chia/full_node/mempool_manager.py |
| 1 |
96.5 |
0.0% | chia/_tests/simulation/test_simulation.py |
| 1 |
70.21 |
-0.71% | chia/timelord/timelord_launcher.py |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 29784765118.1 | 1866 |
91.74 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|