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

Move migrate state from classic to node running and autogenerate node running how-tos #658

Merged
merged 7 commits into from
Oct 10, 2023

Conversation

TucksonDev
Copy link
Contributor

@TucksonDev TucksonDev commented Oct 10, 2023

This PR is part of the clean-up process of the "Ethereum vs Arbitrum" + "Classic vs Nitro" sections, and does two main things:

  • Moves the page "Migrate state from classic node to Nitro" to the node running section (How-to)
  • Modifies the frontmatter of all node running how-tos so the sidebar can be autogenerated (this change includes movind the das instructions to the same how-tos folder)

Redirections have been set for the two relocated files.

@cla-bot cla-bot bot added the s label Oct 10, 2023
@vercel
Copy link

vercel bot commented Oct 10, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
nitro-docs ✅ Ready (Inspect) Visit Preview Oct 10, 2023 7:00pm

sidebar_position: 10
---

When running a Nitro node for the first time on a chain that produced [classic blocks](/for-devs/concepts/public-chains#classic-deprecated) in the past (like Arbitrum One), you need to initialize its database to, at least, the state of the chain after executing the last classic block. The common, and recommended, way of doing that is to provide a database snapshot using the `--init.url` option (as mentioned in [How to run a full node (Nitro)](/node-running/how-tos/running-a-full-node.mdx)). In this how-to we show you an alternative way for doing that, migrating the state and history of the chain from a fully synced classic node.
Copy link
Contributor

Choose a reason for hiding this comment

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

Love this.

Copy link
Contributor

@symbolpunk symbolpunk left a comment

Choose a reason for hiding this comment

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

🔥

Copy link
Contributor

@mahsamoosavi mahsamoosavi left a comment

Choose a reason for hiding this comment

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

Few comments, otherwise it looks awesome!


### Block & transaction history

These are block-headers, transactions and receipts executed in the classic node. Nitro node uses the history to be able to answer simple requests, like `eth_getTransactionReceipt`, from the classic history. The last block in the chain is the only one that affects the genesis block: timestamp is copied from the last block, and parentHash is taken from the last block's blockHash.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
These are block-headers, transactions and receipts executed in the classic node. Nitro node uses the history to be able to answer simple requests, like `eth_getTransactionReceipt`, from the classic history. The last block in the chain is the only one that affects the genesis block: timestamp is copied from the last block, and parentHash is taken from the last block's blockHash.
These are block headers, transactions and receipts executed in the classic node. Nitro node uses the history to be able to answer simple requests, like `eth_getTransactionReceipt`, from the classic history. The last block in the chain is the only one that affects the genesis block: timestamp is copied from the last block, and parentHash is taken from the last block's blockHash.

I think?


### Outbox messages (optional)

This data does not impact consensus and is optional. It allows a Nitro node to provide the information required when redeeming a withdrawal made on the classic rollup.
Copy link
Contributor

Choose a reason for hiding this comment

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

should we use the word executing rather than redeeming?


:::caution Caution

This state import operation requires more resources than a regular run of a nitro node.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This state import operation requires more resources than a regular run of a nitro node.
This state import operation requires more resources than a regular run of a Nitro node.

Copy link
Contributor

@mahsamoosavi mahsamoosavi left a comment

Choose a reason for hiding this comment

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

LGTM!

@TucksonDev TucksonDev merged commit 83da993 into master Oct 10, 2023
4 checks passed
@TucksonDev TucksonDev deleted the node-running-autogenerate-and-migrate-state branch October 10, 2023 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants