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

feat: release taiko reth v1.0.0 #12

Open
wants to merge 137 commits into
base: v1.0.0
Choose a base branch
from
Open

feat: release taiko reth v1.0.0 #12

wants to merge 137 commits into from

Conversation

johntaiko
Copy link
Collaborator

@johntaiko johntaiko commented Jul 3, 2024

Taiko reth v1.0.0 release notes

1. Main changes

1.1. Beacon engine

  • In ForkchoiceUpdate:
    • Major refactor to support reorgs to any historical block, and clear dirty data in storage after each reorg.
  • In PayloadBuilder:
    • Build blocks from arguments instead of from pool
    • Allow an older height block insert into blockchain
  • In Revm:
    • Allow invalid transactions expect the Anchor
  • In Validator:
    • We keep consistency with taiko-geth.

1.2. P2P syncing

  • Support Discv5 protocol
  • In Revm:
    • Disallow any invalid transactions

1.3. Proposer

  • In TxPool:
    • Execute and validate all transactions from the pool before proposing to L1.
  • In Revm:
    • Allow any invalid transactions

1.4. Revm

  • Allow transaction deletion during execution.
  • Support Ontake
  • Support Anchor

johntaiko and others added 30 commits March 12, 2024 15:19
Fix missing imports
Fix yielding error
Fix missmatched types
Fix proper state building
Makefile Outdated

docker buildx build --file ./DockerfileTaiko.cross . \
--platform linux/amd64,linux/arm64 \
#--platform linux/amd64,linux/arm64 \
Copy link

Choose a reason for hiding this comment

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

use delete instead of comment

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

for testing

@@ -1383,7 +1383,7 @@ mod tests {
// Execute the block and capture the result
let exec_result = executor.execute(
(
&Block {
&mut Block {
Copy link

Choose a reason for hiding this comment

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

why are here so many &mut?? by fmt??

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We changed the API of executor because we need to remove the invalid transactions from Block in taiko protocol

@@ -85,7 +85,8 @@ pub fn decode_anchor(bytes: &[u8]) -> Result<anchorCall> {
/// the corresponding enocding function in protocol is `LibProposing._encodeGasConfigs`.
pub fn decode_ontake_extra_data(extradata: &[u8]) -> u8 {
let basefee_ratio = U256::from_be_slice(extradata);
Copy link

Choose a reason for hiding this comment

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

why not using [0] directly??

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This byte's order depends on the byte-endian of runing machines

@@ -9,15 +10,15 @@ use reth_provider::{
DatabaseProviderRwFactory, ProviderError,
};
use reth_storage_errors::provider::ProviderResult;
use taiko_reth_primitives::{HeadL1Origin, HeadL1OriginKey, L1Origin, L1Origins};
use taiko_reth_primitives::{HeadL1OriginKey, L1Origin};

/// The trait for fetch L1 origin related data.
#[auto_impl::auto_impl(&, Arc)]
pub trait L1OriginReader: Send + Sync {
/// Get the L1 origin for the given block hash.
Copy link

Choose a reason for hiding this comment

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

given block number.
a question: should we keep the hash query?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Keep the same between geth and reth

@@ -9,7 +9,7 @@ use taiko_reth_primitives::L1Origin;
pub trait TaikoApi {
/// HeadL1Origin returns the latest L2 block's corresponding L1 origin.
Copy link

Choose a reason for hiding this comment

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

l1 origin means the l1 block where this l2 proposal is in??

@smtmfft
Copy link

smtmfft commented Aug 27, 2024

BTW: maybe you can the corresponding revm change for ontake here.

- Set muir_glacier_block to None
- Set arrow_glacier_block to None
- Set gray_glacier_block to None
- Set cancun_time to None
This commit refactors the `BlockExecutionInput` struct in the `execute.rs` file of the `evm` crate. It replaces the `disable_anchor` field with an `enable_anchor` field and adds an `enable_skip` field. These options allow for enabling or disabling the anchor transaction and skipping invalid transactions during block execution.

Ref: paradigmxyz#1234
@johntaiko johntaiko changed the title V1.0.0 taiko feat: release taiko reth v1.0.0 Sep 12, 2024
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.

3 participants