Skip to content

Commit

Permalink
Merge branch 'master' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
derrekcoleman authored Dec 10, 2024
2 parents b664327 + 0b383b1 commit ac26e11
Show file tree
Hide file tree
Showing 63 changed files with 737 additions and 4,031 deletions.
2 changes: 1 addition & 1 deletion docs/docs/learn/builder-guides/_category_.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
position: 3
label: "Builder Guides"
collapsible: true
collapsed: false
collapsed: true
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ Given that ERC-4337 is still relatively new, there is not a lot of support for t

## Opportunities

There are a interesting use cases that account abstraction enables being pushed by several team. Some places to look for inspiration:
There are interesting use cases that account abstraction enables being pushed by several team. Some places to look for inspiration:

- [Privy](https://docs.privy.io/): Privy allows users to chose from traditional crypto wallets and social logins to create accounts.
- [Privy](https://docs.privy.io/): Privy allows users to choose from traditional crypto wallets and social logins to create accounts.
- [Safe](https://docs.safe.global/getting-started/readme): Safe allows complex multi-sig setups, simple authentication, and onramping.
- [Pimlico](https://pimlico.notion.site/Product-Directory-5d92fe60243b4c5aac6650de390e7cb3): Pimlico tracks several products around account abstraction and it is worthwhile checking out the rapid and new developments in this space.

Expand Down
138 changes: 136 additions & 2 deletions docs/docs/learn/builder-guides/full-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,147 @@ As of August 2024 we recommend you have at least the following hardware configur

Software stack:

- [Python 3](https://www.python.org/downloads/)
- [Docker](https://docs.docker.com/engine/install/)
- [Docker Compose](https://docs.docker.com/compose/install/)

## Configuration

We provide a simple docker-compose configuration to get you started. This guide assumes all data will be stored under `/opt/`.

1. Retrieve BOB mainnet chain configuration.

*genesis.json*
`wget -O /opt/genesis.json "https://api.conduit.xyz/file/getOptimismGenesisJSON?network=036d1667-e469-424e-9db9-5b09cf4d460d&organization=610ec5c5-8b4c-444a-b2b4-a94c1835defe"
`

*rollup.json*
```json
{
"genesis": {
"l1": {
"hash": "0x218132178d65c4bc490aadd93c31535326043fe1fe8fea2d87f26c1da83d45c2",
"number": 19634321
},
"l2": {
"hash": "0x8ed4903b7f9c3f7bb7a09374d63ae9c9852cd9aab1784b433c41dbeb47b4dba2",
"number": 0
},
"l2_time": 1712861987,
"system_config": {
"batcherAddr": "0x08f9f14ff43e112b18c96f0986f28cb1878f1d11",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 60808,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"batch_inbox_address": "0x3a75346f81302aac0333fb5dcdd407e12a6cfa83",
"deposit_contract_address": "0x8adee124447435fe03e3cd24df3f4cae32e65a3e",
"l1_system_config_address": "0xacb886b75d76d1c8d9248cfddfa09b70c71c5393",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}
```

2. Create all the necessary configuration files in the same directory as the docker-compose.yml file.

*op-geth.env*
```
GETH_SNAPSHOT=false
GETH_DISCOVERY_V4=true
GETH_DATADIR=/opt/op-geth/
GETH_ROLLUP_SEQUENCERHTTP=https://rpc.gobob.xyz
GETH_ROLLUP_HISTORICALRPC=https://rpc.gobob.xyz
GETH_SYNCMODE=full
GETH_STATE_SCHEME=path
GETH_OVERRIDE_FJORD=1720627201
GETH_DB_ENGINE=pebble
GETH_ROLLUP_DISABLETXPOOLGOSSIP=true
GETH_HTTP=true
GETH_HTTP_API=web3,debug,eth,txpool,net,engine
GETH_WS=true
GETH_WS_API=web3,debug,eth,txpool,net,engine
GETH_METRICS=true
GETH_AUTHRPC_JWTSECRET=/opt/op-geth/geth/jwtsecret.hex
```

*op-node.env*
Ensure you have an Ethereum L1 full node RPC available and set `OP_NODE_L1_ETH_RPC` & `OP_NODE_L1_BEACON` to the respective RPC endpoints.
```
OP_NODE_L1_ETH_RPC=.....
OP_NODE_L1_BEACON=......
OP_NODE_L1_RPC_KIND=standard
OP_NODE_L1_TRUST_RPC=true
OP_NODE_LOG_LEVEL=INFO
OP_NODE_P2P_BOOTNODES=enode://09acd29625beb40604b12b1c2194d6d5eb290aee03e0149675201ed717ce226c506671f46fcd440ce6f5e62dc4e059ffe88bcd931f2febcd22520ae7b9d00b5e@34.83.120.192:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305
OP_NODE_P2P_STATIC=/ip4/34.83.120.192/tcp/9222/p2p/16Uiu2HAkv5SVdeF4hFqJyCATwT87S3PZmutm8akrgwfcdFeqNxWw
OP_NODE_P2P_SYNC_ONLYREQTOSTATIC=true
OP_NODE_L2_ENGINE_RPC=http://localhost:8551
OP_NODE_L2_ENGINE_KIND=geth
OP_NODE_L2_ENGINE_AUTH=/opt/op-geth/geth/jwtsecret.hex
OP_NODE_ROLLUP_CONFIG=/opt/rollup.json
OP_NODE_OVERRIDE_FJORD=1720627201
OP_NODE_SYNCMODE=execution-layer
OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
OP_NODE_RPC_ENABLE_ADMIN=true
OP_NODE_SAFEDB_PATH=/opt/op-node/
OP_NODE_METRICS_ENABLED=true
```


3. Run opgeth-init to initialise the op-geth data directory
```
docker run -t \
--env-file ./op-geth.env \
-v ./genesis.json:/opt/genesis.json:ro \
-v ./op-geth-data:/opt/op-geth/ \
us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101411.1 \
init --datadir=/opt/op-geth/ --state.scheme=path /opt/genesis.json
```

*docker-compose.yml*
```
services:
opgeth:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101411.1
env_file: op-geth.env
volumes:
- ./op-geth-data:/opt/op-geth/
network_mode: host
opnode:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.10.0
env_file: op-node.env
command:
- op-node
volumes:
- ./op-node-data:/opt/op-node/
- ./rollup.json:/opt/rollup.json:ro
- ./op-geth-data/geth:/opt/op-geth/geth:ro
network_mode: host
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7300"]
interval: 30s
timeout: 10s
retries: 5
depends_on:
opgeth:
condition: service_started
```

You can finally start the node with `docker-compose up`.

## Resources

Please follow [Conduit's node documentation](https://docs.conduit.xyz/guides/run-a-node/op-stack-node) for information on how to self-host a node for an OP Stack rollup deployed on Conduit such as BOB. Conduit extends [Optimism's guide for running a node with Docker](https://docs.optimism.io/builders/node-operators/tutorials/node-from-docker), the source of the specific hardware and software dependencies above.
Additional information on how to self-host a node for an OP Stack rollup is available on [Conduit's node documentation](https://docs.conduit.xyz/guides/run-a-node/op-stack-node). Conduit extends [Optimism's guide for running a node with Docker](https://docs.optimism.io/builders/node-operators/tutorials/node-from-docker), the source of the specific hardware and software dependencies above.

## External Links

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/learn/builder-guides/gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ BOB Gateway enables staking, swapping, lending, and bridging Bitcoin with a sing

See the [Code References](#code-references) below for a deeper look at the SDK and an example implementation file.

You're always welcome to [reach out to us](/docs/learn/introduction/contribution.md) with questions, feedback, or ideas. We look forward to seeing what you Build on Bitcoin!
We look forward to seeing what you Build on Bitcoin!

## Security and Trust Assumptions

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/learn/builder-guides/hello-bitcoin/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ contract TestLightRelay is LightRelay {
<Tabs groupId="dev-env">
<TabItem value="foundry" label="Foundry">

To compile the contract run the followling command:
To compile the contract run the following command:

```shell
forge build
Expand Down Expand Up @@ -684,7 +684,7 @@ At this point, your smart contract is ready to be used, but we can go a step fur

5. Click on the "Code" tab and click on "Verify & Publish" button.

6. Now you should be presented we a set of possilities for verifying you published contract, but we will proceed with "Via flattened source code".
6. Now you should be presented we a set of possibilities for verifying you published contract, but we will proceed with "Via flattened source code".

7. Fill the form with the specific information about the contract and how it was deployed. Make sure every field is correctly populated before submitting. Any incorrect field will lead to a failed verification. After submitting, the verification might take a couple of minutes.

Expand Down
Binary file removed docs/docs/learn/introduction/bitvm-bob.png
Binary file not shown.
Loading

0 comments on commit ac26e11

Please sign in to comment.