{"id":15010199,"url":"https://github.com/bobanetwork/boba_legacy","last_synced_at":"2025-10-12T14:16:45.590Z","repository":{"id":37097043,"uuid":"468341987","full_name":"bobanetwork/boba_legacy","owner":"bobanetwork","description":"Monorepo implementing Boba, a compute layer for Ethereum","archived":false,"fork":false,"pushed_at":"2024-07-29T23:08:20.000Z","size":175226,"stargazers_count":62,"open_issues_count":77,"forks_count":62,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-05-08T23:45:04.986Z","etag":null,"topics":["blockchain","computer-architecture","ethereum","solidity"],"latest_commit_sha":null,"homepage":"https://boba.network","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bobanetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-10T12:53:57.000Z","updated_at":"2025-04-24T14:38:25.000Z","dependencies_parsed_at":"2024-03-19T00:41:54.866Z","dependency_job_id":"a87ba1d9-64e4-47b3-98da-26eff07b7178","html_url":"https://github.com/bobanetwork/boba_legacy","commit_stats":null,"previous_names":[],"tags_count":123,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobanetwork%2Fboba_legacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobanetwork%2Fboba_legacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobanetwork%2Fboba_legacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobanetwork%2Fboba_legacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bobanetwork","download_url":"https://codeload.github.com/bobanetwork/boba_legacy/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166474,"owners_count":21864467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","computer-architecture","ethereum","solidity"],"created_at":"2024-09-24T19:32:06.011Z","updated_at":"2025-10-12T14:16:40.539Z","avatar_url":"https://github.com/bobanetwork.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ndescription: Introduction to Boba Network\n---\n\n# Welcome to Boba\n\nThis is the primary place where [Boba](https://boba.network) works on the Boba L2, a compute-focused L2. Fundamentally, Ethereum is a distributed computer. We believe that L2s can play a unique role in augmenting the base _compute_ capabilities of the Ethereum ecosystem. You can learn more about Turing hybrid compute [here](./packages/boba/turing/README.md).\n\n![turing](./packages/boba/gateway/src/images/boba2/turing.png)\n\nBoba is built on the Optimistic Rollup developed by [Optimism](https://optimism.io). Aside from it focus on augmenting compute, Boba differs from Optimism by:\n\n  * providing additional cross-chain messaging such as a `message-relayer-fast`\n  * using different gas pricing logic\n  * providing a swap-based system for rapid L2-\u003eL1 exits (without the 7 day delay)\n  * providing a community fraud-detector that allows transactions to be independently verified by anyone\n  * interacting with L2 ETH using the normal ETH methods (`msg.value`, `send eth_sendTransaction`, and `provider.getBalance(address)` rather than as WETH\n  * being organized as a [DAO](./packages/boba/contracts/contracts/DAO)\n  * native [NFT bridging](./packages/boba/contracts/contracts/bridges)\n  * automatically relaying classical 7-day exit messages to L1 for you, rather than this being a separate step\n\n## Documentation\n\nUser focused documentation is available [on the Boba docs website](http://docs.boba.network/). Developer-focused documentation lives in [`./boba_documentation`](https://github.com/bobanetwork/boba/blob/develop/boba_documentation) and within the service and contract directories. If you have questions or feel like something is missing check out our [Discord server](https://discord.com/invite/YFweUKCb8a) where we are actively responding, or [open an issue](https://github.com/bobanetwork/boba/issues) in the GitHub repo for this site.\n\n### Direct Support\n\n[Telegram for Developers](https://t.me/bobadev)\\\n[Project Telegram](https://t.me/bobanetwork )\\\n[Discord](https://discord.com/invite/YFweUKCb8a)\n\n## Directory Structure\n\n**Base Layer (generally similar to Optimistic Ethereum)**\n\n* [`packages`](./packages): Contains all the typescript packages and contracts\n  * [`contracts`](./packages/contracts): Solidity smart contracts implementing the OVM\n  * [`core-utils`](./packages/core-utils): Low-level utilities and encoding packages\n  * [`common-ts`](./packages/common-ts): Common tools for TypeScript code that runs in Node\n  * [`data-transport-layer`](./packages/data-transport-layer): Event indexer, allowing the `l2geth` node to access L1 data\n  * [`batch-submitter`](./go/batch-submitter): Daemon for submitting L2 transaction and state root batches to L1\n  * [`message-relayer`](./packages/message-relayer): Service for relaying L2 messages to L1\n  * [`replica-healthcheck`](./packages/replica-healthcheck): Service to monitor the health of different replica deployments\n* [`l2geth`](./l2geth): Fork of [go-ethereum v1.9.10](https://github.com/ethereum/go-ethereum/tree/v1.9.10) implementing the [OVM](https://research.paradigm.xyz/optimism#optimistic-geth).\n* [`integration-tests`](./integration-tests): Integration tests between a L1 testnet and the `l2geth`\n* [`ops`](./ops): Contains Dockerfiles for containerizing each service involved in the protocol,\nas well as a docker-compose file for bringing up local testnets easily\n\n**Boba Layer**\n\n* [`packages/boba/turing`](./packages/boba/turing): System for hybrid compute\n* [`boba_community`](./boba_community): Code for running your own Boba node/replica and the fraud detector\n* [`boba_documentation`](./boba_documentation): Boba-specific documentation\n* [`boba_examples`](./boba_examples): Basic examples of deploying contracts on Boba\n* [`boba_utilities`](./boba_utilities): A stress-tester for discovering bugs under load\n* [`ops_boba`](./ops_boba): Parts of the Boba back-end, including the `api-watcher` service\n* [`packages/boba`](./packages/boba): Contains all the Boba typescript packages and contracts\n  * [`contracts`](./packages/boba/contracts): Solidity smart contracts implementing the fast bridges, the DAO, etc.\n  * [`gas-price-oracle`](./packages/boba/gas-price-oracle): A custom gas price oracle\n  * [`gateway`](./packages/boba/gateway): The Boba Web gateway\n  * [`message-relayer-fast`](./packages/message-relayer): A batch message relayer that can be run for the fast mode without a 7 day delay\n  * [`register`](./packages/boba/register): Code for registering addresses in the AddressManager\n  * [`subgraph`](./packages/boba/subgraph): Subgraphs for indexing the **StandardBridge** and **LiquidityPool** contracts\n\n## Contributing\n\nFollow these instructions to set up your local development environment.\n\n### Dependencies\n\nYou'll need the following:\n\n* [Git](https://git-scm.com/downloads)\n* [NodeJS](https://nodejs.org/en/download/)\n* [Yarn](https://classic.yarnpkg.com/en/docs/install)\n* [Docker](https://docs.docker.com/get-docker/)\n* [Docker Compose](https://docs.docker.com/compose/install/)\n\n**Note: this is only relevant to developers who wish to work on Boba core services. For most test uses, e.g. deploying your contracts, it's simpler to use https://goerli.boba.network**.\n\nEnsure that you have installed and are using nodejs v16.16.0:\n\n```bash\n$ node --version\nv16.16.0\n```\n\nIf you have multiple versions of node installed and use nvm, ensure you are using nodejs v16.16.0\n\n```bash\n$ nvm use\n```\n\nInstall nodejs packages with `yarn`:\n\n```bash\n$ git clone git@github.com:bobanetwork/boba.git\n$ cd boba\n$ yarn clean # only needed / will only work if you had it installed previously\n$ yarn\n$ yarn build\n```\n\nThen, make sure you have Docker installed _and make sure Docker is running_.\n\n## Spinning up the stack\n\nBuild and run the entire stack:\n\n```bash\n$ cd ops\n$ BUILD=1 DAEMON=0 ./up_local.sh\n```\n\n\nBuild side services such as `aa_deployer` and `bundler`\n\n```bash\n$ cd ops\n$ docker-compose -f docker-compose.yml -f docker-compose-side.yml build bundler aa_deployer\n```\n\nSpinning up the side services\n\n```bash\n$ cd ops\n$ docker-compose -f docker-compose.yml -f docker-compose-side.yml up bundler aa_deployer\n```\n\nStack spinup can take 15 minutes or more. There are many interdependent services to bring up with two waves of contract deployment and initialization. Recommended settings in docker - 10 CPUs, 30 to 40 GB of memory. You can either inspect the Docker `Dashboard\u003eContainers/All\u003eOps` for the progress of the `ops_deployer` _or_ you can run this script to wait for the sequencer to be fully up:\n\n```bash\n./scripts/wait-for-sequencer.sh\n```\n\nIf the command returns with no log output, the sequencer is up. Once the sequencer is up, you can inspect the Docker `Dashboard\u003eContainers/All\u003eOps` for the progress of `ops_boba_deployer` _or_ you can run the following script to wait for all the Boba contracts (e.g. the fast message relay system) to be deployed and up:\n\n```bash\n./scripts/wait-for-boba.sh\n```\n\nWhen the command returns with `Pass: Found L2 Liquidity Pool contract address`, the entire Boba stack has come up correctly.\n\n### Helpful commands\n\n* _Running out of space on your Docker, or having other having hard to debug issues_? Try running `docker system prune -a --volumes` and then rebuild the images.\n* _To (re)build individual base services_: `docker-compose build -- l2geth`\n* _To (re)build individual Boba ts services_: `docker-compose build -- builder` then `docker-compose build -- dtl`, for example\n\n### Running unit tests\n\nTo run unit test coverage for whole stack:\n\n```bash\nyarn test:coverage\n```\n\nTo run unit tests for a specific package:\n\n```bash\ncd packages/\u003cpackage-to-test\u003e\nyarn test\n```\n\n### Running integration tests\n\nMake sure you are in the `ops` folder and then run\n\n```bash\ndocker-compose run integration_tests\n```\n\nExpect the full test suite with more than 110 tests including load tests to complete in\nbetween *30 minutes* to *two hours* depending on your computer hardware.\n\n### Viewing docker container logs\n\nBy default, the `docker-compose up` command will show logs from all services, and that\ncan be hard to filter through. In order to view the logs from a specific service, you can run:\n\n```bash\ndocker-compose logs --follow \u003cservice name\u003e\n```\n\n## License\n\nCode forked from [`go-ethereum`](https://github.com/ethereum/go-ethereum) under the name [`l2geth`](https://github.com/ethereum-optimism/optimism/tree/master/l2geth) is licensed under the [GNU GPLv3](https://gist.github.com/kn9ts/cbe95340d29fc1aaeaa5dd5c059d2e60) in accordance with the [original license](https://github.com/ethereum/go-ethereum/blob/master/COPYING).\n\nAll other files within this repository are licensed under the [MIT License](https://github.com/bobanetwork/boba/blob/develop/LICENSE) unless stated otherwise.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobanetwork%2Fboba_legacy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobanetwork%2Fboba_legacy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobanetwork%2Fboba_legacy/lists"}