KingBodo / omni

Monorepo for Omni node, contracts and other related tools

Home Page:https://omni.network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Omni Monorepo

Monorepo for Omni node, contracts and other related tools.

Build Tests Documentation Discord Telegram Twitter Follow

Logo

Table of Contents

About Omni

Omni Protocol is a groundbreaking blockchain designed to seamlessly connect Ethereum's rollups, addressing the fragmentation issue in the ecosystem. It enables developers to create applications accessible across all rollups, simplifying user interaction and expanding the market reach for developers.

Key Features of Omni:

  • ETH Restaking: Utilizes Ethereum validators through restaking, providing a robust security layer parallel to Ethereum, enhancing performance where Ethereum has limitations.
  • Fast Finality: Offers quick transaction confirmations, crucial for a responsive user experience and mass adoption.
  • Cross-Rollup Programmability: Empowers developers with a global state layer, allowing the creation of natively cross-rollup applications in a familiar EVM environment.

Omni Protocol stands as a vital infrastructure piece for Ethereum's future, offering a developer-friendly platform that combines security with performance, paving the way for a new era of dApp development.

Installation

Building the node requires a working Go (version 1.22 or higher, see go.mod) and goreleaser (see installation guide here or install with make ensure-go-releaser). You can install them using your favorite package manager. Once the dependencies are installed, run:

make build-docker

Usage

Testing

To run the end-to-end tests, run:

MANIFEST=simple make e2e-run

Starting a devnet

To start a devnet, run:

make devnet-deploy

To stop it, run:

make devnet-clean

Directory Structure

├── contracts: Solidity contracts, bindings, and testing for the Omni protocol.
│ ├── bindings: Go bindings for smart contracts.
│ ├── src: Solidity source files for the protocol's smart contracts.
│ └── test: Tests for smart contracts.
├── docs: Documentation resources, including images and diagrams.
├── explorer: Components for the Omni explorer.
│ ├── db: Database schemas and migrations.
│ ├── graphql: GraphQL API for the explorer.
│ └── ui: User interface for the explorer.
├── halo: The Halo instance, including application logic and attestation mechanisms.
│ ├── app: Application logic for Halo.
│ └── cmd: Command-line tools and utilities.
├── lib: Core libraries for various protocol functionalities.
│ ├── cchain: Consensus chain interaction utilities.
│ └── xchain: Cross-chain messaging and utilities.
├── relayer: Relayer service for cross-chain messages and transactions.
│ └── app: Application logic for the relayer service.
├── scripts: Utility scripts for development and operational tasks.
└── test: Testing suite for end-to-end, smoke, and utility testing.

Contributing

For detailed instructions on how to contribute, including our coding standards, testing practices, and how to submit pull requests, please see the contribution guidelines.

Acknowledgements

The development of Omni has been a journey of learning, adaptation, and innovation. As we built Omni, we drew inspiration and knowledge from the work of several remarkable teams within the blockchain and Ethereum ecosystem.

We extend our gratitude to the following teams for their pioneering work and the open-source resources they've provided, which have significantly influenced our development process:

  • CometBFT: Our heartfelt thanks go to the CometBFT team for their groundbreaking work in consensus algorithms.

  • Geth: The go-ethereum team's relentless dedication to the Ethereum ecosystem has been nothing short of inspiring. Their comprehensive and robust implementation of the Ethereum protocol has provided us with a solid foundation to build upon.

  • Erigon: We are grateful to Erigon for their novel work in maximizing EVM performance.

  • Optimism: We thank the Optimism team for their dedication to open source work within the Ethereum ecosystem.

Acknowledging these teams is not only a gesture of gratitude but also a reflection of our commitment to collaborative progress and the open-source ethos. The path they've paved has enabled us to contribute our innovations back to the community, and we look forward to continuing this tradition of mutual growth and support.

Security

Please refer to SECURITY.md.

About

Monorepo for Omni node, contracts and other related tools

https://omni.network

License:GNU General Public License v3.0


Languages

Language:Go 76.7%Language:Solidity 16.6%Language:TypeScript 4.5%Language:Shell 0.8%Language:Makefile 0.7%Language:Dockerfile 0.2%Language:JavaScript 0.1%Language:Smarty 0.1%Language:HTML 0.1%Language:CSS 0.0%