Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge v0.9.2 into master #2334

Merged
merged 15 commits into from
Jul 14, 2022
Merged

Merge v0.9.2 into master #2334

merged 15 commits into from
Jul 14, 2022

Conversation

piotrm50
Copy link
Contributor

v0.9.2 - 2022-07-14

This release introduces the epoch commitments feature which allows creating proofs-of-inclusion of a block in the tangle. This feature is also the first step to the development of pruning, local snapshots and will allow more efficient way of syncing a node. This release also improves the parameters of rate-setter that should improve user-experience of issuing new blocks. It also contains various bugfixes and improvements, change of terminology e.g. message -> block etc. as well as replacement of grades of finality with confirmation state.

The snapshot has been changed and thus the ledger state is fully reset.

piotrm50 and others added 15 commits June 24, 2022 12:54
* Fix faucet

* Fix faucet findFundingOutput

* Make pledging more flexible

Co-authored-by: jonastheis <4181434+jonastheis@users.noreply.github.com>
Co-authored-by: Andrea V <1577639+karimodm@users.noreply.github.com>
Co-authored-by: Daria Dziubałtowska <44535712+daria305@users.noreply.github.com>
Co-authored-by: Daria Dziubałtowska <daria.dziubaltowska@iota.org>
Co-authored-by: Georgy Savva <georgysavva@pm.me>
Co-authored-by: jkrvivian <jkrvivian@gmail.com>
* Improve rate-setter UX

* Adjust more parameters.
* Feat: proper getters and setters for storables

* Add TODOs

* Fix: using new models after merge

* Fix: no compile errors

* Fix: storage nil pointer dereference

* Add commitments progressing when delayed

* Add comments to exported methods

* Only have one MinMana threshold

* Change load snapshot logic for mana

* Make epoch indeces persistent

* Add mana state root

* Remove ecc

* Use CachedECRecord

* Fix merge conflicts

* Fic EpochDiff definition

* Remove mana leaf if balance is 0

* Remove EpochCommitment struct & code duplication

* Store latest ECRecord from snapshot

* Update packages/ledger/models.go

Co-authored-by: Andrea V <1577639+karimodm@users.noreply.github.com>

* EpochDiff now in ledger package to avoid cycles

* Genesis Snapshot Generation

* AccessMana is now Mana1

* package/mana/access* all gone
* consensusbase renamed to manabase implementing base interface for both access and consensus mana
* consensusbasevector renamed to manabasevector implementing basevector interface for both access and consensus mana
* both mana vectors are now maintained using 2 instances of ManaBaseVector (former ConsensusBaseVector)
* update methods removed from both interfaces and implementations
* SetCoefficients gone, along with corresponding mana plugin parameters
    *
* EffectiveValue methods removed, only BaseValue remains
* manarefresher is gone
    * DelegationAddress stuff managed by the plugin also gone
        * Reclaim functionality removed
    * corresponding WebAPI endpoints and response fields removed
    * cli-wallet delegation & reclaim removed
    * occurrences removed from Ansible and docker-compose files
* GetMana and GetManaMap methods do not receive and optional time anymore, but they still return a timestamp which is always set to time.Now(). This timestamp should be tied to the epoch timestamp for the committed mana vector.

* Remove references to --mana.snapshotResetTime=true

* Remove references to --mana.snapshotResetTime=true

* Fix some issues

* Review fixes

* Genesis Snapshot Generation (#2266)

* Remove OracleEpochShift

* Fix: always initialize trees on new epoch

* Working committments in messages

* AccessMana is now Mana1 (#2267)

* Add EC related variables to test framework

* Add event mock structure for notarization manager

* Implement Tangle smt Tree test

* EpochCommittment in dashboard

* ECs finally in Messages

* Fixed dashboard LatestConfirmedEpoch glitch

* Fix: correctly compute PrevEC

* Feat: include computed EC in dashboard

* Remove debugging prints

* Update initialize with data method

* Snapshot

* Fix after merge

* Revert "Remove debugging prints"

This reverts commit 862dfae.

* Bump hive.go

* Several fixes

* Create snapshot in createGenesisOutputs

* Load snapshot and fix test

* Set up Tangle and issue messages

* Fixes

* Fix a bunch of things

* Temporary Fix: epochdiff loading

* Bypass finality gadget

* Fixes after merge

* Split EpochDiff storage & several fixes

* Move store and load diff functions back to commitment factory

* Update mana trees

* Solve Update diff storage on inclusion todo

* Update diff on the message orphaned event if contain tx

* Fix epochdiff storage

* Remove OnTransactionConfirmed in favor of OnTransactionInclusionUpdated

* Rewrite test with TestScenario

* Check CommitmentFunc error and committed epoch EI

* Working epoch committments with ManaRoot

* Move proof stuff to its own file

* Add state mutation and PCC tests

* Change mutation state test to non-conflicting txs scenario

* Add debug prints

* Remove some TODOs

* Addressed review

* Fix: typos

* SnapshotDepth as notarization parameter

* Wire events from within notarization Manager

* Fix: do not shutdown Tangle twice

* Fix: removed unused mana snapshot

* Dockerfile support go.work

* Fix snapshot mana allocation for integration tests

* Fix: mana test

* Fix Tangle tree test

* Initialize ECRecord in new options

* Update State Mutation test to the latest changes

* Remove OnTransactionConfirmed

* Fix some race conditions

* Small improvement

* Fix conflict Transaction Inclusion

* Fix storage shutdown

* Fix common tests

* Fix missing mana leaf startup error

* Removed debugging prints

* Exported functions first

* Fix: attachment might not be booked yet on BranchCreated

* Use Tangle Time for old enough check

* Move Epoch Manager to epoch package

* Check if commitment tree exists before generating a proof

* Rename newEpochManager

* Fix snapshot creation in TestFramework

* Fixes after merge

* Fixes after merge

* Verify root and msgID/txID

* pkged.go

* Disable notarization plugin on entrynode

* Add next epoch started event

* Fix typo

* Remove unnecessary indexes from storage and add new

* Fix and add conflicting test

* Only treat Notarization events when node is bootstrapped

* Initialize aMana from snapshot without epoch delay

* Remove EpochManager as it is completely stateless

* Properly return or panic when error conditions are detected

* Drop committmentTrees upon committing an epoch

* Book consensus mana in whole epochs

* Refactor testing framework set-up

* Refactor assert functions

* Remove proofs code

* Ditch TestScenario in testing

* Clean up after merge

* Only trigger EpochCommitted if newly committed

* WIP: TestManager_DiffUTXOs

* Add TransactionInclusionUpdate test

* Add assert diff store function

* Fix OutputWithMetadata model FromObjectStorage

* Fix: properly compact spent/created diff

* Fix: async diffStorage shutdown in goroutine

* DiffUTXO test with reattachment

* Fix: isNew ecRecord

* DiffUTXO test with event expectation

* Fix all notarization manager tests

* OutputWithMetadata FromBytes with correct IDs

* Some fixes after merge

* Compiles again

* notarization tests passing

* Fix all the things!

* Add bookEpoch test

* Fixes in tests

* Fix Genesis snapshot loading with epoch 0

* Use ATT time

* Fix mManaVectorToUpdate event initialization

* Remove --mana.snapshotResetTime=true from docker network compose

* Update packages/epoch/types.go

Co-authored-by: Daria Dziubałtowska <44535712+daria305@users.noreply.github.com>

* Address review

* Update packages/notarization/manager.go

Co-authored-by: Andrea V <1577639+karimodm@users.noreply.github.com>

* Apply review suggestions

* Make diffs private

* Fix: always check inclusionTime before triggering TransactionConfirmed event

* Remove unnecessary code

* More fixes to bugs and tests

* Fix all tests

* Remove prints

* Revert "Fix: always check inclusionTime before triggering TransactionConfirmed event"

This reverts commit 2287d1e.

* Update commitments on new epoch event

* txMeta.InclusionTime().IsZero() guard in OnTransactionConfirmed

* Fix the indexes

* Fix other unit tests

* Fix TransactionConfirmed w/ InclusionTime

This also reverts commit 16f0d20.

* Fix isCommittable condition, and race with ATT

* Fix  most unit tests

* Fix  diff unittest

* Fix  UpdateStateMutationTreeWithConflict unittest

* Trigger next epoch on AcceptanceTime updated

* Advance epochs on ATT update: extend event to include ATT

* More unit test fixes

* Remove check on Zero InclusionTime for Transactions

* Code quality

* Hook to ManaVectorUpdate from within mana plugin

* Fix BookEpoch test

* Code quality

* Fix TestPowFilter_Filter test

* Fix TestTangle_InvalidParentsAgeMessage

* Fix TestRateSetter_ErrorHandling test

* Fix TestScheduler_SkipConfirmed test

* Fix TestScheduler_SkipConfirmed test

* Fix integration tests

* Lock EpochCommittmentFactory upon OnAcceptanceTimeUpdated

* ReadLock on GetLatestEC

* Remove slow prints

* Fresh GenesisTime

* CMana calculation is now anchored to epochs

* Fix: Set output pledgeID in booker

* Fix: Set output pledgeID in booker

* WIP mana tests

* Fix: Set output pledgeID in booker

* Fix access mana pledge

* Fix invalid cast from MockedTransaction when storing outputs

* Code quality

* Remove slow prints

* Replace GoF with confirmation state

* Rename finality gadget to acceptance gadget

* Add Undefined confirmation state and add functionality for output confirmation state

* Fix compile errors in integration tests

* Fix output confirmation state and consensus integration tests

* Adjust dashboard and improve conflicts page

* Remove GoF appearance throughout code base

* Adjust dags visualizer

* Address review comments

* pkger

* Fix integration mana_test

* Fix: epochs, mana booking and other fixes

* Fix: all times above genesisTime are epoch 1

* OutputWithMetadata now embeds used fields directly

* Remove unused stuff

* Fix output metadata snapshot load

* Fix: logging error

Co-authored-by: Andrea V <1577639+karimodm@users.noreply.github.com>
Co-authored-by: Daria Dziubałtowska <daria.dziubaltowska@iota.org>
Co-authored-by: jkrvivian <jkrvivian@gmail.com>
Co-authored-by: Georgy Savva <georgysavva@pm.me>
Co-authored-by: Daria Dziubałtowska <44535712+daria305@users.noreply.github.com>
Bumps [moment](https://github.com/moment/moment) from 2.29.2 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](moment/moment@2.29.2...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [moment](https://github.com/moment/moment) from 2.29.2 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](moment/moment@2.29.2...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Remove print

* Update docker network snapshot.
Co-authored-by: Daria Dziubałtowska <daria.dziubaltowska@iota.org>
Co-authored-by: Andrea V <1577639+karimodm@users.noreply.github.com>
Co-authored-by: Daria Dziubałtowska <44535712+daria305@users.noreply.github.com>
Co-authored-by: Ching-Hua (Vivian) Lin <jkrvivian@gmail.com>
Co-authored-by: jonastheis <4181434+jonastheis@users.noreply.github.com>
Co-authored-by: Piotr Macek <piotr.macek@iota.org>
* Add bootstrap manager.

* Fix entrypoint in integration test.

* Small improvements.

* Remove printlines

* Address review comments.

* Increase faucet timeout

* Fix

* Trigger events in separate goroutine

* Fix unit tests

* Fix unit tests.

* improve unit tests

* Adjust integration tests paramters.

* Fix data races in unit test

* Bugfix
* Update wiki cli

* Fix docs by renaming images
* Add changelog

* Bump versions
@karimodm karimodm merged commit e8d192b into master Jul 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants