All Projects → omgnetwork → optimism-v2

omgnetwork / optimism-v2

Licence: MIT License
ARCHIVE of monorepo implementing Boba, an L2 Compute solution built on Optimistic Ethereum - active repo is at https://github.com/bobanetwork/boba

Programming Languages

go
31211 projects - #10 most used programming language
javascript
184084 projects - #8 most used programming language
typescript
32286 projects
c
50402 projects - #5 most used programming language
solidity
1140 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to optimism-v2

zmq
ZeroMQ based distributed patterns
Stars: ✭ 27 (-20.59%)
Mutual labels:  distributed-computing
swarm-learning
A simplified library for decentralized, privacy preserving machine learning
Stars: ✭ 142 (+317.65%)
Mutual labels:  distributed-computing
Distributed-System-Algorithms-Implementation
Algorithms for implementation of Clock Synchronization, Consistency, Mutual Exclusion, Leader Election
Stars: ✭ 39 (+14.71%)
Mutual labels:  distributed-computing
protoactor-go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 4,138 (+12070.59%)
Mutual labels:  distributed-computing
QCFractal
A distributed compute and database platform for quantum chemistry.
Stars: ✭ 107 (+214.71%)
Mutual labels:  distributed-computing
kar
KAR: A Runtime for the Hybrid Cloud
Stars: ✭ 18 (-47.06%)
Mutual labels:  distributed-computing
JOLI.jl
Julia Operators LIbrary
Stars: ✭ 14 (-58.82%)
Mutual labels:  distributed-computing
PFL-Non-IID
The origin of the Non-IID phenomenon is the personalization of users, who generate the Non-IID data. With Non-IID (Not Independent and Identically Distributed) issues existing in the federated learning setting, a myriad of approaches has been proposed to crack this hard nut. In contrast, the personalized federated learning may take the advantage…
Stars: ✭ 58 (+70.59%)
Mutual labels:  distributed-computing
Distributed-Data-Structures
[GSoC] Distributed Data Structures - Collections Framework for Chapel language
Stars: ✭ 13 (-61.76%)
Mutual labels:  distributed-computing
DevOps
DevOps code to deploy eScience services
Stars: ✭ 19 (-44.12%)
Mutual labels:  distributed-computing
Prime95
Prime95 source code from GIMPS to find Mersenne Prime.
Stars: ✭ 25 (-26.47%)
Mutual labels:  distributed-computing
distex
Distributed process pool for Python
Stars: ✭ 101 (+197.06%)
Mutual labels:  distributed-computing
dicodile
Experiments for "Distributed Convolutional Dictionary Learning (DiCoDiLe): Pattern Discovery in Large Images and Signals"
Stars: ✭ 15 (-55.88%)
Mutual labels:  distributed-computing
hyperqueue
Scheduler for sub-node tasks for HPC systems with batch scheduling
Stars: ✭ 48 (+41.18%)
Mutual labels:  distributed-computing
blockchain-reading-list
A reading list on blockchain and related technologies, targeted at technical people who want a deep understanding of those topics.
Stars: ✭ 93 (+173.53%)
Mutual labels:  distributed-computing
asyncoro
Python framework for asynchronous, concurrent, distributed, network programming with coroutines
Stars: ✭ 50 (+47.06%)
Mutual labels:  distributed-computing
dlsa
Distributed least squares approximation (dlsa) implemented with Apache Spark
Stars: ✭ 25 (-26.47%)
Mutual labels:  distributed-computing
easyFL
An experimental platform to quickly realize and compare with popular centralized federated learning algorithms. A realization of federated learning algorithm on fairness (FedFV, Federated Learning with Fair Averaging, https://fanxlxmu.github.io/publication/ijcai2021/) was accepted by IJCAI-21 (https://www.ijcai.org/proceedings/2021/223).
Stars: ✭ 104 (+205.88%)
Mutual labels:  distributed-computing
realtimemap-dotnet
A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
Stars: ✭ 47 (+38.24%)
Mutual labels:  distributed-computing
future.batchtools
🚀 R package future.batchtools: A Future API for Parallel and Distributed Processing using batchtools
Stars: ✭ 77 (+126.47%)
Mutual labels:  distributed-computing
Boba

ARCHIVE of The Boba Monorepo

The Boba monorepo has moved to https://github.com/bobanetwork/boba.

TL;DR

This is the primary place where Boba 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.

Boba

Boba is built on the Optimistic Rollup developed by Optimism. Aside from its main focus, augmenting compute, Boba differs from Optimism by:

  • providing additional cross-chain messaging such as a message-relayer-fast
  • using different gas pricing logic
  • providing a swap-based system for rapid L2->L1 exits (without the 7 day delay)
  • providing a community fraud-detector that allows transactions to be independently verified by anyone
  • interacting with L2 ETH using the normal ETH methods (msg.value, send eth_sendTransaction, and provider.getBalance(address) rather than as WETH
  • being organized as a DAO
  • native NFT bridging
  • automatically relaying classical 7-day exit messages to L1 for you, rather than this being a separate step

Documentation

User focused documentation is available on the Boba docs website. Developer-focused documentation lives in this folder and within the service and contract directories.

Community and DAO

Directory Structure

Base Layer (generally similar to Optimistic Ethereum)

  • packages: Contains all the typescript packages and contracts
  • l2geth: Fork of go-ethereum v1.9.10 implementing the OVM.
  • integration-tests: Integration tests between a L1 testnet, l2geth,
  • ops: Contains Dockerfiles for containerizing each service involved in the protocol, as well as a docker-compose file for bringing up local testnets easily

Boba Layer

Contributing

Follow these instructions to set up your local development environment.

Dependencies

You'll need the following:

Note: this is only relevant to developers who wish to work on Boba core services. For most test uses, e.g. deploying you contracts, it's simpler to use https://rinkeby.boba.network.

Clone the repository, open it, and install nodejs packages with yarn:

$ git clone [email protected]:omgnetwork/optimism-v2.git
$ cd optimism-v2
$ yarn clean # only needed / will only work if you had it installed previously
$ yarn
$ yarn build

Then, make sure you have Docker installed and make sure Docker is running. Finally, build and run the entire stack:

$ cd ops
$ BUILD=1 DAEMON=0 ./up_local.sh

Spinning up the stack

Stack 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>Containers/All>Ops for the progress of the ops_deployer or you can run this script to wait for the sequencer to be fully up:

./scripts/wait-for-sequencer.sh

If the command returns with no log output, the sequencer is up. Once the sequencer is up, you can inspect the Docker Dashboard>Containers/All>Ops 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:

./scripts/wait-for-boba.sh

When the command returns with Pass: Found L2 Liquidity Pool contract address, the entire Boba stack has come up correctly.

Helpful commands

  • 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.
  • To (re)build individual base services: docker-compose build -- l2geth
  • To (re)build individual Boba ts services: docker-compose build -- builder then docker-compose build -- dtl, for example

Running unit tests

To run unit tests for a specific package:

cd packages/package-to-test
yarn test

Running integration tests

Make sure you are in the ops folder and then run

docker-compose run integration_tests

Expect the full test suite with more than 110 tests including load tests to complete in between 30 minutes to two hours depending on your computer hardware.

Viewing docker container logs

By default, the docker-compose up command will show logs from all services, and that can be hard to filter through. In order to view the logs from a specific service, you can run:

docker-compose logs --follow <service name>

License

Code forked from go-ethereum under the name l2geth is licensed under the GNU GPLv3 in accordance with the original license.

All other files within this repository are licensed under the MIT License unless stated otherwise.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].