Rooch Network

repository·main·Indexed 41 days ago

https://github.com/rooch-network/rooch

A Verifiable Application (VApp) container using the Move programming language to bring smart contract capabilities to the Bitcoin ecosystem. Rooch ensures the verifiability of computations and states, featuring a Data Availability (DA) system equivalent to Bitcoin consensus and a specialized library for tracking transaction anomalies.

Tokens
631.2K
Snippets
2.1K
Records
3.1K
Agent score
51%

What's inside Rooch

  1. Overview of the Move Source Language

    main

    Move is an expression-based source language designed for writing Modules and Scripts that compile to Move bytecode. It aims to be ergonomic and concise while maintaining transparency with the underlying bytecode.

    Key characteristics include:

    • Expression-based: Allows for concise, composed programs that interact with the stack in a controlled manner.
    • Bytecode Transparency: The language lifts bytecode concepts into the source level rather than hiding them, ensuring full interoperability with published modules.
    • Strictness: Adds restrictions such as preventing arbitrary stack manipulation and disallowing dead code or unused effects to improve safety and facilitate formal verification.
  2. Overview of RoochBTC (Pre-Mainnet)

    main

    RoochBTC is a pre-mainnet launch of the Rooch Network designed to provide developers with hands-on experience in building fully on-chain applications with Bitcoin assets.

    Features of RoochBTC:

    • Indexed Bitcoin Mainnet State: The full Bitcoin mainnet state is indexed on the chain.
    • Developer Tooling: Includes a full suite of tools: SDK, wallet API, documentation, and examples.
    • Demo Applications: Ready-to-use applications for Bitcoin asset holders to interact with the ecosystem.
  3. Introduction to Move programming

    main
    Move is a next-generation language designed for secure, sandboxed, and formally verified programming. While originally developed for the Diem blockchain, it is designed for use cases both within and outside of a blockchain context. To get started with Move, you should understand its architecture, the distinction between Modules and Scripts, and follow the tutorial for creating coins.
  4. Overview of the Bitcoin Move Framework

    main
    The Bitcoin Move Framework provides a set of core modules (residing under the 0x4 address space) designed to interface Move smart contracts with Bitcoin-specific primitives and logic. It includes modules for handling Bitcoin transactions, UTXOs, multisig validation, inscriptions, and Merkle proofs, enabling Move-based applications to interact with the Bitcoin ecosystem.
  5. Overview of the Sparse Merkle Tree (SMT) library

    main

    The Sparse Merkle Tree (SMT) is a Rust library designed to implement a Sparse Merkle tree for key-value stores. Its primary purpose is to provide state proofs for the storage layer. The implementation is derived from Starcoin and Diem, incorporating optimizations specified in the Diem whitepaper.

    Planned improvements for the library include:

    • Release as a standalone crate.
    • Interface refactoring for improved usability.
    • Support for customized hash methods.
    • Support for customized encoding/decoding methods.
  6. Overview of Rooch as a Bitcoin Application Layer

    main

    Rooch is a verifiable application (VApp) execution runtime container designed to serve as the application layer for the Bitcoin ecosystem. It enables decentralized applications with Bitcoin-level security by providing a programmable environment that has full access to Bitcoin's state.

    Key Capabilities

    • MoveVM Integration: Developers can program smart contracts using the Move language.
    • Full Bitcoin State Access: Rooch possesses the complete state of the Bitcoin blockchain, allowing smart contracts to recognize not just standard UTXOs, but also asset protocols like Ordinals and BRC20.
    • High Scalability: Supports up to 100k peak TPS through parallel execution.
    • Native Asset Interoperability: Assets like BTC, Ordinals, or BRC20 can be used within Rooch-supported applications without requiring a custodial bridge. Assets remain Bitcoin L1 native and can transition to L1 without permission.
  7. Overview of cryptographic primitives in the crypto component

    main
    The crypto component provides implementations for essential cryptographic primitives used within the Diem framework, including hashing, signing, and key derivation/generation. It utilizes a type-safe API defined in traits.rs to enforce security standards for verifiable random functions, EdDSA, and MultiEdDSA signatures.
  8. Overview of FocEliza

    main

    FocEliza is a Move language implementation of 'Fully on-chain Eliza'. It is designed to demonstrate the creation and management of AI characters directly on the blockchain.

    Key capabilities include:

    • On-chain character creation and storage: Defining and persisting AI characters on-chain.
    • Dynamic state updates: Modifying character attributes and states.
    • On-chain memory system: Managing character memory within the blockchain state.
    • Personality customization: Allowing characters to evolve and customize their personalities.
  9. Overview of rooch-common features and structure

    main

    The rooch-common crate is a foundational library in the Rooch ecosystem that provides reusable components and shared logic to ensure consistency across the project. It is organized into several key functional areas:

    • Filesystem Utilities (src/fs): Tools and abstractions for managing file system interactions and I/O operations.
    • General-purpose Utilities (src/utils): A collection of helper functions designed to streamline common programming tasks.
    • Shared Components: Encapsulated logic and patterns used widely across different parts of the Rooch project.