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

Brief presentation of the DA architecture. #134

Open
steelgeek091 opened this issue May 15, 2023 · 0 comments
Open

Brief presentation of the DA architecture. #134

steelgeek091 opened this issue May 15, 2023 · 0 comments
Labels
area::documentation Improvements or additions to documentation
Milestone

Comments

@steelgeek091
Copy link
Collaborator

In the DA architecture, we have three types of components:

  • DA client
  • DA server
  • Storage Backend

The storage process is as follows:

The DA server is the first to be started. When started, it reads the configuration file of multiple storage backends from the configuration. The configuration contains the URL and public key of each storage backend. The DA server then establishes connections to these storage backends and waits for DA client requests.

The DA client calls the Store interface and sends its data to the DA server. The DA server sends the data to multiple backends, checks if the signature returned by each backend is consistent, and verifies if the data hash returned by each backend is the same as computed by the DA client. Finally, the signatures and public keys of all successful backends are collected and aggregated into a multisignature, which is then verified for its legitimacy.

Finally, the DA server aggregates the results of multiple backends into a Data Availability Certificate (DAC) and returns it to the DA client.

The DA client can query the data related to the Data Availability Certificate (DAC) by using the GetByHash interface and specifying the data hash field.

For example, if we use the Celestia client as a backend for the DA server, we need to configure the private key of the Celestia Chain client and the namespace of the storage space before starting the DA server. When the DA server calls Celestia backend, it initiates a PayForBlob transaction to Celestia Chain, paying a certain amount of GasFee to store the Blob data on Celestia Chain. Celestia Chain returns transaction information, including transaction hash, which serves as the parameter for DA client to query data that has been stored.

@steelgeek091 steelgeek091 added the area::documentation Improvements or additions to documentation label May 15, 2023
@steelgeek091 steelgeek091 added this to the Rooch v0.1 milestone May 15, 2023
@jolestar jolestar modified the milestones: Rooch v0.1, Rooch v0.2 May 29, 2023
@jolestar jolestar modified the milestones: Rooch v0.2, Rooch v0.4 Jul 6, 2023
@jolestar jolestar modified the milestones: Rooch v0.5, Rooch v0.6 May 14, 2024
@jolestar jolestar modified the milestones: Rooch v0.6, TBD May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area::documentation Improvements or additions to documentation
Projects
Status: No status
Development

No branches or pull requests

2 participants