* wip: conversion of hotstuff from flow into Q-oriented model
* bulk of tests
* remaining non-integration tests
* add integration test, adjust log interface, small tweaks
* further adjustments, restore full pacemaker shape
* add component lifecycle management+supervisor
* further refinements
* resolve timeout hanging
* mostly finalized state for consensus
* bulk of engine swap out
* lifecycle-ify most types
* wiring nearly complete, missing needed hooks for proposals
* plugged in, vetting message validation paths
* global consensus, plugged in and verified
* app shard now wired in too
* do not decode empty keys.yml (#456)
* remove obsolete engine.maxFrames config parameter (#454)
* default to Info log level unless debug is enabled (#453)
* respect config's "logging" section params, remove obsolete single-file logging (#452)
* Trivial code cleanup aiming to reduce Go compiler warnings (#451)
* simplify range traversal
* simplify channel read for single select case
* delete rand.Seed() deprecated in Go 1.20 and no-op as of Go 1.24
* simplify range traversal
* simplify channel read for single select case
* remove redundant type from array
* simplify range traversal
* simplify channel read for single select case
* RC slate
* finalize 2.1.0.5
* Update comments in StrictMonotonicCounter
Fix comment formatting and clarify description.
---------
Co-authored-by: Black Swan <3999712+blacks1ne@users.noreply.github.com>
* v2.1.0.2
* restore tweaks to simlibp2p
* fix: nil ref on size calc
* fix: panic should induce shutdown from event_distributor
* fix: friendlier initialization that requires less manual kickstarting for test/devnets
* fix: fewer available shards than provers should choose shard length
* fix: update stored worker registry, improve logging for debug mode
* fix: shut the fuck up, peer log
* qol: log value should be snake cased
* fix:non-archive snap sync issues
* fix: separate X448/Decaf448 signed keys, add onion key to registry
* fix: overflow arithmetic on frame number comparison
* fix: worker registration should be idempotent if inputs are same, otherwise permit updated records
* fix: remove global prover state from size calculation
* fix: divide by zero case
* fix: eager prover
* fix: broadcast listener default
* qol: diagnostic data for peer authenticator
* fix: master/worker connectivity issue in sparse networks
tight coupling of peer and workers can sometimes interfere if mesh is sparse, so give workers a pseudoidentity but publish messages with the proper peer key
* fix: reorder steps of join creation
* fix: join verify frame source + ensure domain is properly padded (unnecessary but good for consistency)
* fix: add delegate to protobuf <-> reified join conversion
* fix: preempt prover from planning with no workers
* fix: use the unallocated workers to generate a proof
* qol: underflow causes join fail in first ten frames on test/devnets
* qol: small logging tweaks for easier log correlation in debug mode
* qol: use fisher-yates shuffle to ensure prover allocations are evenly distributed when scores are equal
* qol: separate decisional logic on post-enrollment confirmation into consensus engine, proposer, and worker manager where relevant, refactor out scoring
* reuse shard descriptors for both join planning and confirm/reject decisions
* fix: add missing interface method and amend test blossomsub to use new peer id basis
* fix: only check allocations if they exist
* fix: pomw mint proof data needs to be hierarchically under global intrinsic domain
* staging temporary state under diagnostics
* fix: first phase of distributed lock refactoring
* fix: compute intrinsic locking
* fix: hypergraph intrinsic locking
* fix: token intrinsic locking
* fix: update execution engines to support new locking model
* fix: adjust tests with new execution shape
* fix: weave in lock/unlock semantics to liveness provider
* fix lock fallthrough, add missing allocation update
* qol: additional logging for diagnostics, also testnet/devnet handling for confirmations
* fix: establish grace period on halt scenario to permit recovery
* fix: support test/devnet defaults for coverage scenarios
* fix: nil ref on consensus halts for non-archive nodes
* fix: remove unnecessary prefix from prover ref
* add test coverage for fork choice behaviors and replay – once passing, blocker (2) is resolved
* fix: no fork replay on repeat for non-archive nodes, snap now behaves correctly
* rollup of pre-liveness check lock interactions
* ahead of tests, get the protobuf/metrics-related changes out so teams can prepare
* add test coverage for distributed lock behaviors – once passing, blocker (3) is resolved
* fix: blocker (3)
* Dev docs improvements (#445)
* Make install deps script more robust
* Improve testing instructions
* Worker node should stop upon OS SIGINT/SIGTERM signal (#447)
* move pebble close to Stop()
* move deferred Stop() to Start()
* add core id to worker stop log message
* create done os signal channel and stop worker upon message to it
---------
Co-authored-by: Cassandra Heart <7929478+CassOnMars@users.noreply.github.com>
---------
Co-authored-by: Daz <daz_the_corgi@proton.me>
Co-authored-by: Black Swan <3999712+blacks1ne@users.noreply.github.com>
wire issue for proxy worker init - h/t dogeanger
moved injection from implicit to explicit for hypergraph operations
bundle address resolution for multi-tx token interactions
genesis shard init bug
message subscriber for app -> global flow bug
shard store save bug
* Make frame processing hashing parallel
* Do not build address for new style proofs
* Validate mint requests in parallel
* Do not recompute byte form of address in mint
* Remove unused output
* Use single append
* Cache verify challenge proof results
* reduce testnet frame pruning delay to 1 minute
* set seniority repair cutoff frame for testnet to 25745
* add log message to confirm frame pruning is enabled
* Add adaptive data worker count
* Use runtime worker count for validation workers
* Reserve cores for networking during transition application
* Automatically set GOGC and GOMEMLIMIT