Skip to content

Common clients and contracts for DA solutions for zkSync hyperchains.

License

Notifications You must be signed in to change notification settings

availproject/hyperchain-da

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hyperchain-da

Common clients and contracts for DA solutions for ZK chains.

Clients

The clients from this repository are going to be imported by the zksync-era and used by the DataAvailabilityDispatcher component.

  • It is assumed that the DA client is only serving as a connector between the ZK chain's sequencer and the DA layer.
  • The DA client is not supposed to be a standalone application, but rather a library that is used by the sequencer.
  • The logic of the retries is implemented in the sequencer, not in the DA clients.
  • The get_inclusion_data has to return the data only when the state roots are relayed to the L1 verification contract.

The examples of the clients can be found here.

If you want to add a new client - you need to add your implementation of the DataAvailabilityInterface trait to the src/clients directory.

Contracts

The contracts consist of two parts:

  • L2 contract
    • Produces the DA commitment, which is then relayed to the L1 via system logs.
  • L1 contract
    • Decodes the inclusion data provided by the sequencer.
    • Matches the DA commitment from logs with the inclusion data.
    • Calls the verification contract (Attestation Bridge/Blobstream...) with the inclusion data.

About

Common clients and contracts for DA solutions for zkSync hyperchains.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 70.5%
  • Solidity 29.5%