All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning for all versions v1.0.0
and beyond (still considered experimental prior to v1.0.0).
- #694 Make fuzzer whitelist aware
- #708 Add Emission Enabled bolean flag to Mint Module
- #703 Add outlier detection to inferences
- #714 Add initialization of actors' EMA scores
- #716 Add global workers, reputers, admins + bulk operations
- #712 Apply sortition penalties based on liveness
- #720 Add initial ema score generation queries and events
- #702 Adjust score normalization to consider more scores samples
- #699 Make install script manage new release assets naming
- #704 Correct Discrepancies with Whitepaper modified reward fractions vs plain EMA
- #700 Allow clients to unmarshall old transactions
- #711 Set research-approved default module param values
- #713 Proto generation keeps codec.go files
- #634 Add events for listening coefficients and the computationally cheapest regrets
- #678 Add optimistic execution + update CometBFT to v0.38.15
- #663 Add whitelists for admins, topic creators, workers, and reputers. Create x/emissions v6 migration and chain upgrade v0.7.0
- #654 Reorganize Linter Folder, add linter to check fuzzer state transition probabilities add to 100 percent. (Integrated as part of #653)
- #685 Add burner permission to gov module
- #627 Add fee market and fee grant module
- #689 Add the
CircuitBreakerDecorator
to theAnteHandler
- #697 Add upgrade guide to contributing.md
- #694 Make fuzzer whitelist aware
- #670 Adjust topic initial regret initialization
- #652 Reduce code duplication, set local_testnet_upgrade_l1.sh using environment variables with local_testnet_l1.sh instead
- #650 Make fuzzer setup run through every state transition once before fuzzing starts
- #651 Refactor: Fuzzer rename invariants test to fuzz test
- #653 Fuzzer Bugfixes, Allow User to Set Fuzzer Transition Probability Distribution
- #686 CLI query commands alignment
- #691 Fix number of inferers considered in the reward cycle
- #693 Migration test updates
- #680 Remove custom ProposalHandler
- #683 Added new strategy for reputer listening coefficients
- #668 Add stake nil amount validation + added tests + fixed other tests
- #687 Fix reputer nonce submission boundaries
- #690 Make investor token unlock amounts strictly monotonically increasing
- #695 Mint module GenesisState, proto, and v3 no-op migration (follow-on PR to 690)
- #698 Added docs to CONTRIBUTING.md; Fix
x/mint
version for query autocli; Fixx/emissions
v6 migration such thatx/gov
actually gets burner permissions; Add props to whitelist-related return protos to ensure
- #682 Ensure IBC
MsgTransfer
funds are received
- #624 Add
nurse
internal healthcheck service based onpprof
. Seehealth/README.md
. - #642 Add release signing keys
- #648 Update emissions v5 migration to reset way more maps => complete cleanup of poisonously negative values
- #538 Refactor Inference Synthesis to use Functions instead of "Builder Pattern"
- #625 Determine what percentage of rewards to pay to each topic based on time-based accumulation rather than instantaneously.
- #684 Avoid duplication of ABCI methods ordering.
- #615 Improvement to merit-based sortition to enable more cycling through the crowd
- #615 Fixed runaway regret calculation where large influx of workers would cause the regret to grow negatively without bound
- #635 Fixed occasional nil pointer dereference bug when calling
GetNetworkInferences
. Also, actually filled in loss block height return value.
- #603 Validate all Values for Correctness Prior to Storing them in the Keeper
- #620 Add a static analyzer to detect non-deferred
.Close()
calls, improve migration error handling - #622 Add telemetry metrics on queries/txs
- Implement a fix for incomplete migration of topic fields from the v0.4.0 upgrade.
- Add additional RPC endpoint to allow for recalculating the inflation rate / target emission rate more often than once per month.
- Update to use rewardable topics as active topics instead of using them separately.
- Other miscellaneous minor fixes
- #584 Allow admins to force target emission recalculation on params update and via dedicated mint RPC endpoint
- #592 Update to use rewardable topics as active topics and rename
PickChurnableActiveTopics
toUpdateNoncesOfActiveTopics
- #602 Refactor: Fix query server proto v4 (refactors #592)
- #607 Add events for building research monitoring suite
- #582 Additional topic fields validation
- #587 Update Migration Tests to include NaN Initial Regrets Test
- #590 Clear NaN in maps by deleting all map values during migration
- #595 Emit inference and forecast score events in case of 1 actor
- #596 EMA protection against NaN values
- #598 Math Operations on NaNs Should Return Errors
- #604 Migration: clean additional stores. Ensure record pruning on reward failure. Autocli fix of multi-reputer-stake function.
- #588 Add String Max Length Module Parameter, Enforce Max String Length on Creation of New Topics
- #610 Ensure that BlockHeight of scores is consistently set to be a topic epoch nonce. Also simplify the condition for idempotent payload submission.
Implements fixes for our June 2024 Sherlock.xyz audit, including important fixes for determining which topics are considered active.
- #542 Add scalable management of active topics with associated queries such as
GetActiveTopicsAtBlock
andGetNextChurningBlockByTopicId
- #556 Scores now take an exponential moving average of the score rather than using the instantaneous score value from this epoch.
- #542 As part of active topic management, we removed
GetActiveTopics
and other (especially paginated) remnants of an unpartitioned store of active topics.
- #544 Added check against zero-rewards after conversion to cosmosInt
- #547 Improve error handling on InsertPayload, fixed/added tests err handling
- #550 Fix reputer window upper limit
- #555 Refactor: Rename TestSuite names
- #567 Fix worker nonce window closing as soon as it opens
- See our recent June 2024 security audit for a full description of bugs found during that audit.
- #554 Check Signature on Worker or Reputer Payload Matches Inferer/Forecaster/Reputer inside Bundle
Refactors to adapt to single transaction insertions from workers and reputers.
- Changelog added (this), improved contribution guidelines, and simplified PR template
- #443 Create mechanism to import and export state with
initGenesis
andexportGenesis
- #461 Create index of topics by block height at which their open worker nonce closes
- #432 State sync enabled for faster validator syncing
- #478 Create and apply abstraction for augmenting topic fee revenue that is sure to check for topic activation criteria for both funding events, fee payments, and stake additions
- #482 Creation of an official Upgrade Flow
- #458 Removal of Blockless and batch processing; Introduction of online, individual payload processing. This resolves many security, performance, and scalability issues.
- A number of PRs were merged prior to v0.3.0 that improved upon our usage of Blockless, however that has been removed in favor of its removal in #458. Hence, we are not listing those PRs here.
- #462 Add individual payload processing
- #470 Skim of top performers per topic as they submit payloads ("online skimming")
- #464 Remove libp2p peer ids from chain
- #459 Revamp nonce management
- #486 Correctly set initial emission per unit staked token
- #460 Apply a number of bugfixes and high-precision unit tests that ensure our implementation matches our simulation of Allora and therefore the original intentions of the whitepaper and Foundation.
- #487 Patch to have the single
allorad
home folder in Docker - #437 Fix issue for excessive effective revenue dripping
- #441 Prevent DoS from attempting to withdraw negative stake amounts
- #472 Prevent topics to be created with a ground truth lag too big so that the reputation nonce could be dropped when the ground truth is revealed
- #484 Fix issue with permissions within Docker container
- #477 Fix issue arising from no forecasts being sent in worker payload
- #436 Fix bug related to excessive usage of topic ground truth lag and misleading error message
- Additional bugfixes and improvements
- #454 Bump CometBFT version
- #465 Catch and avert error leading to inappropriate transfer of funds
- #440 Remove parallelization to avert nonuniform executions between hardwares
- Added many new queries
- Added confidence interval to network inference query
- New actors are incorporated more smoothly instead of ignored then included in their next round
- Created fuzzer so anyone can help find vulnerabilities (tell them how they can submit)
- Parallelized tests for faster CI
- Formally adopted gitflow with improved contributor experience
- Simplified nonce semantics
- More reliable fetching of previous data
- Added validations for safer data ingress
- Update forecast utility function
- Automatically expire stake removals instead of requiring a 2nd tx
- Added min bound on epoch length to prevent topics from hogging too many resources
- Add restore from snapshot
- Version updates to all docker files and deployment scripts
- Removed duplicate computations for increased efficiency
- Bugixes, improved error handling, way more coverage, and simplifications including:
- More efficient state pruning
- Way more validator logging
- Removed print statements so more efficient logging
- Tuned default global parameters
- Self-delegation disallowed (security patch)
- Added stress tests
- Improved README
- Move expensive logarithm and exponentiation operations to offchain nodes when possible
Versions below v0.2.14
were associated with our "Alpha Testnet" and "Edgenet" deployments, before formal versioning was adopted.