Skip to content

Initial specs migration.#793

Merged
adlerjohn merged 4 commits intospecs-stagingfrom
adlerjohn/specs-migration
Sep 27, 2022
Merged

Initial specs migration.#793
adlerjohn merged 4 commits intospecs-stagingfrom
adlerjohn/specs-migration

Conversation

@adlerjohn
Copy link
Contributor

@adlerjohn adlerjohn commented Sep 26, 2022

Fixes #792

An initial migration of the existing specs as of e59efd63a2165866584833e91e1cb8a6ed8c8203. It's expected that there are a few broken links and extra content that has to be pruned, along with incorrect content. The important thing is to not miss anything.

Also sets up a CI workflow that will build the book.

@adlerjohn adlerjohn added the specs directly relevant to the specs label Sep 26, 2022
@adlerjohn adlerjohn self-assigned this Sep 26, 2022
rootulp
rootulp previously approved these changes Sep 26, 2022
Copy link
Collaborator

@rootulp rootulp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for your hard work on this

| `TRANSACTION_NAMESPACE_ID` | `NamespaceID` | `0x0000000000000001` | Transactions: requests that modify the state. |
| `INTERMEDIATE_STATE_ROOT_NAMESPACE_ID` | `NamespaceID` | `0x0000000000000002` | Intermediate state roots, committed after every transaction. |
| `EVIDENCE_NAMESPACE_ID` | `NamespaceID` | `0x0000000000000003` | Evidence: fraud proofs or other proof of slashable action. |
| `TAIL_TRANSACTION_PADDING_NAMESPACE_ID` | `NamespaceID` | `0x00000000000000FF` | Tail padding for transactions: padding after all transactions but before messages. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[non-blocking][question] is this tail padding after all reserved namespaces? So after evidence but before messages?

Suggested change
| `TAIL_TRANSACTION_PADDING_NAMESPACE_ID` | `NamespaceID` | `0x00000000000000FF` | Tail padding for transactions: padding after all transactions but before messages. |
| `TAIL_RESERVED_NAMESPACE_PADDING_NAMESPACE_ID` | `NamespaceID` | `0x00000000000000FF` | Tail padding for reserved namespaces: padding after all reserved namespaces but before messages. |

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as #793 (comment)

Copy link
Member

@evan-forbes evan-forbes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dope, glad these are finding a home.

Copy link
Member

@liamsi liamsi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would ask to add John, Matt, and me to the specs sub-dir as code-owner.

Comment on lines +80 to +86
message WireTxBurn {
uint64 amount = 1;
TransactionFee fee = 2;
uint64 nonce = 3;
// 32-byte graffiti
bytes graffiti = 4;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Tx type does not exist. Neither any "graffiti" field.
I am not sure that copying the spec as is without going through the hard work to update it is the best approach but up to you and the core/app team.

Comment on lines +262 to +264
// ANCHOR: StateFraudProof
// https://github.com/celestiaorg/celestia-specs/blob/master/specs/networking.md#statefraudproof
message StateFraudProof {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be deleted I assume?

Copy link
Member

@liamsi liamsi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also sets up a CI workflow that will push the built book to a main directory on the gh-pages branch on each merge to main, allowing a rendered form of the book to be displayed on GitHub pages.

I would recommend to remove this until the specs are somewhat up-to-date again. Otherwise, we will be confusing a bunch of folks visiting the published specs again.

@musalbas
Copy link
Member

musalbas commented Sep 27, 2022

Shouldn't the parts about how data is encoded be in Celestia core, not app?

We want to have specs be in the repo that they're relevant for, so different specs for core and app. The specs relevant for core and app should be extracted to the relevant repos, so that if for example someone makes a change to the share formatting specs in core, they edit specs in core, not app. However this PR doesn't seem to achieve that.

@musalbas
Copy link
Member

musalbas commented Sep 27, 2022

Also, it seems a large part of the spec is outdated (sparse Merkle trees, graffiti, etc). IMO there's not much advantage to merging the existing outdated specs into the main branch, as people can already reference the existing specs repo. I think there should be a draft PR to do a basic update and clean up of the specs, as well as decoupling the bits for core and app, so that we have a general structure that can be built on, before merging this.

@evan-forbes
Copy link
Member

evan-forbes commented Sep 27, 2022

I think there should be a draft PR to do a basic update and clean up of the specs, as well as decoupling the bits for core and app, so that we have a general structure that can be built on, before merging this.

@musalbas I think there was a miscommunication, where those of us on the call agreed to move the specs over first, and then edit them with individual PRs. this is why Rootul and myself approved so quickly and why John made the PR in the first place.

as mentioned, if we don't want to do that, then we can turn this PR into a draft and make the individual PRs on this branch until we're comfortable with merging.

Shouldn't the parts about how data is encoded be in Celestia core, not app?

all encoding code is kept in the application now, so I think it makes sense to keep these specs here.

I would recommend to remove this until the specs are somewhat up-to-date again. Otherwise, we will be confusing a bunch of folks visiting the published specs again.

not publishing the specs until they match the implementation makes a lot of sense. We can split this portion into a different PR.

Copy link
Member

@evan-forbes evan-forbes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should split the CI publishing mechanism into a different PR #793 (review)

@musalbas
Copy link
Member

musalbas commented Sep 27, 2022

Makes sense, would it make sense to merge this into a different branch like specs in that case, until it's ready for main? Even if there's no CI publishing mechanism, people could still be reading the md files in main.

@adlerjohn adlerjohn marked this pull request as draft September 27, 2022 13:13
@adlerjohn adlerjohn changed the base branch from main to specs-staging September 27, 2022 13:40
@adlerjohn
Copy link
Contributor Author

  1. Made a new branch specs-staging that we can squash-merge PRs into, starting with this one, and re-targeted this PR on that branch. This avoids end-users seeing a WIP specs directory.
  2. Removed the deploy step from CI, added a build step to ensure the book actually builds properly.

@adlerjohn adlerjohn marked this pull request as ready for review September 27, 2022 13:43
@evan-forbes
Copy link
Member

Thanks @adlerjohn! gets my 👍 👍

@adlerjohn adlerjohn merged commit f7f4b96 into specs-staging Sep 27, 2022
@adlerjohn adlerjohn deleted the adlerjohn/specs-migration branch September 27, 2022 13:46
liamsi pushed a commit that referenced this pull request Sep 27, 2022
Fixes #792

An initial migration of the existing specs as of
[`e59efd63a2165866584833e91e1cb8a6ed8c8203`](https://github.com/celestiaorg/celestia-specs/tree/e59efd63a2165866584833e91e1cb8a6ed8c8203).
It's expected that there are a few broken links and extra content that
has to be pruned, along with incorrect content. The important thing is
to not miss anything.

Also sets up a CI workflow that will build the book.
@adlerjohn adlerjohn mentioned this pull request Sep 27, 2022
adlerjohn added a commit that referenced this pull request Sep 27, 2022
@rootulp rootulp mentioned this pull request Sep 28, 2022
topdev22 added a commit to topdev22/app-celestia that referenced this pull request Sep 26, 2025
clevergoldfox added a commit to clevergoldfox/celestia-app that referenced this pull request Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

specs directly relevant to the specs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate specs over to app

5 participants