Skip to content

Feature/zrt art refactor#19

Merged
juja256 merged 63 commits into
mainfrom
feature/zrt-art-refactor
Dec 19, 2025
Merged

Feature/zrt art refactor#19
juja256 merged 63 commits into
mainfrom
feature/zrt-art-refactor

Conversation

@serhii023

@serhii023 serhii023 commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator

Changes general interface and logic. Changes include:

  • Implement merge logic with separate base and upstream art trees. Store all the changes in the latest one, and move them into base art on commit() call.
  • Remove ZeroArt trees, and implement merge logic directly in PublicArt and PrivateArt. Make all the operations ephemeral, i.e. they doesn't change the state of the Art. User should call apply(..) method to update Art tree. Change application is considered to be done in one epoch, i.e. if it it the first change it will replace keys, if it is not, it will append them. To divide one epoch from another, there is a dedicated method commit()`.
  • Refactor majority of traits. Remove VerifiableChange, ProvableChange.
  • Add Preview structures and methods, to pre-view applied changes, as they are already comited for PublicArt, ArtSecrets, ArtNodeIndex, etc.
  • Move all the verification logic to the zrt-zk crate.
  • implement most of the operation as atomic.
  • Add tree node iterators, as method calls, i.e. leaf_iter().

@juja256 juja256 merged commit 74d6d9a into main Dec 19, 2025
1 check passed
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.

2 participants