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

Summary #44

Open
neotheprogramist opened this issue Aug 15, 2024 · 10 comments
Open

Summary #44

neotheprogramist opened this issue Aug 15, 2024 · 10 comments

Comments

@neotheprogramist
Copy link
Owner

Scope of Services


Local Node Testing Framework

  1. Implementation of Compatibility Checking Tool

    • Complete the development that checks all functions listed in the Starknet OpenRPC specification in a fuzzy way.
  2. Transaction & Transition Tool

    • Develop a stateless state transition utility as per the Ethereum specification. This tool will ensure state transitions are handled accurately.
    • Create a transaction validation utility to validate transactions against the StarkNet specifications.
  3. Block Builder Tool

    • Develop a block assembler utility to build blocks according to the protocol.

Primary Hive Equivalent

  1. Use KinD (Kubernetes in Docker) for Docker Container Environment

    • Create simulator pods for node requests.
    • Implement a proxy for each node to analyze communication.
    • Deploy Pathfinder, Juno, and Papyrus nodes in Docker.
  2. Develop End-to-End Tests

    • Randomly select nodes for requests and verifications.
    • Implement a protocol analyzer in proxies to log and verify node communication adherence to protocol.
@Uacias
Copy link
Collaborator

Uacias commented Aug 16, 2024

Current Progress:

  1. Compatibility Checking Tool:
  • Test cases for versions v0.0.5 and v0.0.6.
  • Integration of the starknet-io/types-rs system for standardized typing
  • Generation of new accounts for each test scenario
  1. State Transition Tool
    It reads input transactions from a JSON file, processes them, and outputs the resulting state to another JSON file. The tool can be configured using environment variables.

  2. Transaction Tool

  • Verification of transaction structure for each type as outlined in the StarkNet documentation
  • Implementation and testing of signature verification for the following transactions: Invoke_V1, Declare_V2, DeployAccount_V1

@piotr-stec
Copy link
Collaborator

piotr-stec commented Aug 23, 2024

Current Progress:

  1. Compatibility Checking Tool:
  • Test cases for versions v0.0.7.
  1. Transaction Tool
  • Implementation and testing of signature verification for the following transactions: Invoke_V3, Declare_V3, DeployAccount_V3
  1. Block Builder Tool
  • Initial stages of development have begun.

Primary Hive Equivalent Progress:

  • A Dockerfile was successfully created to set up the Pathfinder environment. The Dockerfile is based on the rust:1.80.1-bookworm image and includes all necessary dependencies for building and running the Pathfinder node.
  • Kubernetes pods were configured to deploy multiple instances of the Pathfinder node. Each pod is set up to run the Pathfinder container built from the previously prepared Dockerfile.
  • NodePort services were created in Kubernetes to expose the Pathfinder nodes externally. These services allow access to the HTTP, monitoring, and RPC endpoints of the Pathfinder nodes, ensuring they are accessible from outside the Kubernetes cluster.
  • Initial work on the Dockerfile for Juno has begun. The Dockerfile is being configured to install a specific version of Go and clone the Juno repository. The setup will allow for building and running the Juno binary.

@Uacias
Copy link
Collaborator

Uacias commented Sep 13, 2024

Current progress:
Hive:

  • Introduced Kubernetes Pod and Service configurations for anvil.
  • Added Kustomization to manage related Kubernetes resources.
  • Created scripts for automating cluster creation and deployment processes, improving workflow efficiency.
  • Created Snapshot Fetcher Pod to get necessary resources for Pathfinder Pod for faster block syncing.
  • Created PersistentVolumes and PersistentVolumeClaims for data fetching and Pathfinder setup.
  • Ongoing work is being done to expand the PV/PVC configuration for multiple Pathfinder pods.

b11r:

  • Block data generation is sourced from the t8n tool output.
  • Block structure is created following Starknet documentation guidelines.

@Uacias
Copy link
Collaborator

Uacias commented Sep 20, 2024

Current Progress

Hive:

  • Expanded PV/PVC configuration to support multiple Pathfinder pods.
  • Significantly reduced Pathfinder syncing time by using our own database snapshot.
  • Continued work on preparing test cases.

b11r:

  • Simplified the usage of commands in the b11r tool by consolidating input parameters, improving user experience.
  • Added utility functions for reading and writing block-building data.
  • Improved error handling and logging for better debugging and observability.

t9n:

  • Refined error handling mechanisms.

t8n:

  • Updated functionality to group multiple transactions into a single block.

Compatibility Checker:

  • Fixed the estimate_message_fee endpoint.
  • Resolved custom account creation issues in starknet-devnet v0.0.6.
  • Enhanced error handling across different components for clearer and more direct reporting.
  • Unified transaction types under BroadcastedTxn to streamline the transaction handling process, necessitated by the use of types-rs.

Other Updates:

  • Adjusted the types-rs fork by removing the nested type field in certain structs, leveraging serialization instead.
  • Cleaned up the code.

@Uacias
Copy link
Collaborator

Uacias commented Sep 27, 2024

Current Progress:

t8n:

  • Simplified the output of t8n.
  • Added the ability to pass the output from one instance of t8n as an input to another instance of t8n.

b11r:

  • Simplified input of b11r.

Checker:

  • Added tests for checker version v0.0.5 to improve coverage.

Others:

  • Moved hashing and ECDSA signing features from types-rs to starknet-rpc-tests.
  • Prepared stack of PRs with changes for types-rs, ensuring all Github Actions pass successfully and are ready for code review.
  • Fixed all Clippy warnings across the repository.
  • Added a new workflow to enhance the development process.

Next steps

  • Increasing tests coverage for v0.0.5, v0.0.6, v0.0.7.
  • Reducing t8n output.
  • Adding tests for Hive.
  • Upgrading Hive infrastructure.
  • Refactoring the codebase.

@Uacias
Copy link
Collaborator

Uacias commented Oct 7, 2024

Current progress:

  • Created and deployed a pod for Madara, ensuring compatibility with the overall k8s system.
  • Completed the pod setup for Juno
  • Pod tests analysis, incorporating suggestions from the Madara team.
  • Implemented the missing endpoints for devnet v7.
  • Added missing versions for specific RPC endpoints across all versions.

@Uacias
Copy link
Collaborator

Uacias commented Oct 11, 2024

Current progress:

  • Completed the pod setup for Papyrus
  • Working on implementing proxy for kubernetes pods
  • Almost finished modifying checker to make it applicable for Madara in devnet mode and for any devnet implementation

@Uacias
Copy link
Collaborator

Uacias commented Oct 12, 2024

  • Finished modifying checker to make it applicable for Madara in devnet mode and for any devnet implementation

@Uacias
Copy link
Collaborator

Uacias commented Oct 20, 2024

Current progress:

  • Working on setting up a proxy for kubernetes pods, to track communication.
  • Finished fixing devnet v7 endpoints, user can now run e.g. checker with katana/madara devnet endpoints - most tests will fail (differences in devnet endpoints), but the checker won't panic
  • Refactoring v7 openrpc tests. Enhanced error handlin. Updated docs.
  • Improved error message handling by updating regex patterns for class hashes to handle 63/64-char lengths.
  • Finished Kubernetes architecture modifications. Introduced StatefulSets and Jobs, for easier and more flexible cluster management. Overall refactoring of yamls.
  • Initiating modifications to the Checker architecture, pivoting towards a utility lib crate.

@Uacias
Copy link
Collaborator

Uacias commented Oct 28, 2024

Current progress:

  • Finished modifications to the Checker architecture, v5, v6, v7, hive using lib crate.
  • Tested madara after fixing sync issue, working correctly now.
  • Removed redundant code from testing binaries.
  • Improved k8s by waiting for jobs to be finished.
  • Added random pod selection functionality for hive.
  • Testing proxy.
  • Creating paymaster architecture.
  • Modifying tests architecture.

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

No branches or pull requests

3 participants