Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: sync develop #216

Merged
merged 60 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
df4b2f3
op-e2e: Add timeouts to multi-peer sync test (#13801)
mslipper Jan 16, 2025
df5ba61
op-program: Build an interop prestate (#13799)
ajsutton Jan 16, 2025
4252ddd
use camel case for opcm outputversion var (#13815)
AmadiMichael Jan 16, 2025
0a7d1a6
op-program: Stop derivation once the claimed timestamp is reached (#1…
ajsutton Jan 16, 2025
78baddd
op-challenger: Refactor super trace provider to supply preimages (#13…
ajsutton Jan 16, 2025
96f78bb
op-program: Implement consolidation for interop (#13775)
Inphi Jan 16, 2025
0690337
op-program: Implement retries in prefetcher block re-exec (#13819)
Inphi Jan 16, 2025
f910bf2
op-chain-ops: op-run-block debug tool (PR v2) (#13811)
protolambda Jan 16, 2025
6d37c2f
op-deployer: Remove ASR implementation field (#13817)
mslipper Jan 16, 2025
0c940ad
kurtosis-devnet: Add Getting Started Section to README.md (#13813)
axelKingsley Jan 16, 2025
b08f5f0
feat(kurtosis-devnet): expose private ports (#13789)
sigma Jan 16, 2025
003d648
feat(kurtosis-devnet): subshells (#13759)
sigma Jan 16, 2025
a51637c
chore: Add cargo binary folder to $PATH (#13822)
janjakubnanista Jan 16, 2025
4830f60
fix(op-program): minimize docker context (#13580)
sigma Jan 17, 2025
d18f11e
kurtosis-devnet: Support the interop prestate (#13830)
ajsutton Jan 17, 2025
bd7c16b
feat(op-challenger): Kona interop executor (#13829)
clabby Jan 17, 2025
8910388
op-challenger: Lazy create clients (#13810)
ajsutton Jan 17, 2025
9dd9e04
op-challenger: Add super-cannon to GameType strings (#13832)
ajsutton Jan 17, 2025
1820f29
Add makefile target to build all cannon prestates (#13831)
ajsutton Jan 17, 2025
5f4757c
op-challenger: Hook up the super game type (#13794)
ajsutton Jan 17, 2025
477dbc6
feat: add OP_SUCCINCT game type (#13780)
leruaa Jan 17, 2025
884876d
interop-devnet: remove in favor of kurtosis devnet (#13841)
protolambda Jan 17, 2025
bcf5923
avoid nil pointer error for `requireEventualBatcherTxType` (#13827)
zhiqiangxu Jan 17, 2025
e90ae51
OPCM upgrade full PoC (#13574)
maurelian Jan 17, 2025
704faf2
ops-bedrock: remove legacy docker-compose (#13842)
protolambda Jan 17, 2025
3614064
op-deployer: Support Holocene genesis (#13843)
mslipper Jan 17, 2025
469577f
dependabot(gomod): bump github.com/hashicorp/raft-boltdb/v2 (#13767)
dependabot[bot] Jan 17, 2025
17f516f
feat(kurtosis-devnet): devnet manifest implementation (#13823)
sigma Jan 18, 2025
0870c63
chore: fix problematic function name in comment (#13781)
piguagua Jan 18, 2025
cd2bfd1
refactor: using slices.Contains to simplify the code (#13807)
pinglanlu Jan 18, 2025
ac2f34c
clear targets depending on `make devnet-allocs` at root (#13804)
zhiqiangxu Jan 18, 2025
0543861
chore: cleanup devnet tools (#13844)
protolambda Jan 19, 2025
39e9f1a
op-e2e: Add action tests for challenger and stopping at the game time…
ajsutton Jan 20, 2025
0c24a47
feat: update foundry versions (#13857)
maurelian Jan 20, 2025
d5b554d
Update CCI builder version (#13858)
maurelian Jan 20, 2025
009d2e9
chore: Remove tag service (#13860)
mslipper Jan 20, 2025
4fdef94
fix(kurtosis-devnet): add omitted test fixes (#13862)
sigma Jan 20, 2025
2857bfd
chore: extract devnet-sdk package (#13864)
sigma Jan 20, 2025
566efc9
Remove docker RedundantTargetPlatform and LegacyKeyValueFormat warnin…
palango Jan 20, 2025
1add88a
op-deployer: Improve default hardfork choice (#13854)
mslipper Jan 20, 2025
6db0c9d
op-node/rollup/derive: Reorganize `baseBatchStage` (#13866)
sebastianst Jan 21, 2025
dd37e61
op-supervisor: return typed pairs of L1/L2 blocks, and support invali…
protolambda Jan 21, 2025
8c45612
kt-devnet: adds pectra-devnet (#13871)
zhwrd Jan 21, 2025
b528c3a
chore(kurtosis-devnet): add proper deploy package (#13869)
sigma Jan 21, 2025
57c7d16
ci: Upload cannon prestates (#13865)
ajsutton Jan 22, 2025
9580179
Refactor Derivation DB Reset Functions (#13874)
axelKingsley Jan 22, 2025
ef6ef6f
make interfaces for opcm contracts and use them in tests and scripts …
AmadiMichael Jan 22, 2025
b8c011f
cannon: Simplify futex handling (#13754)
mbaxter Jan 22, 2025
ba2bfdc
txmgr: Add custom publish error message handling (#13856)
sebastianst Jan 22, 2025
4a15412
op-challenger: Set agreed prestate preimage for super cannon games. (…
ajsutton Jan 22, 2025
de3865c
-rc is removed when upgrade() is called by the Upgrade Controller (#1…
AmadiMichael Jan 22, 2025
ef03df7
contracts-bedrock: remove GCT code (#13921)
tynes Jan 22, 2025
7755aac
op-program: Optimise block by header lookup (#13932)
ajsutton Jan 23, 2025
e51600b
op-challenger: Migrate config over to supporting multiple L2s (#13833)
ajsutton Jan 23, 2025
9a7257e
Update foundry version in mise.toml (#13926)
maurelian Jan 23, 2025
969382a
op-node: Fix stop sequencer deadlock in op-conductor deployments (#13…
0xVasconcelos Jan 23, 2025
f94707f
Merge branch 'develop' into fix/merge-conflict-lockbox-8
agusduha Jan 23, 2025
e0a23eb
fix: pre pr
agusduha Jan 23, 2025
831fd8d
Merge branch 'sc-feat/add-shared-lockbox' into fix/merge-conflict-loc…
agusduha Jan 23, 2025
1c3d1f1
fix: semver lock
agusduha Jan 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
72 changes: 56 additions & 16 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: 2.1
parameters:
ci_builder_image:
type: string
default: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:v0.55.0
default: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:v0.56.0
ci_builder_rust_image:
type: string
default: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder-rust:latest
Expand Down Expand Up @@ -698,7 +698,6 @@ jobs:
- "/root/.cache/go-build"
- notify-failures-on-develop


contracts-bedrock-tests-upgrade:
machine: true
resource_class: ethereum-optimism/latitude-1
Expand Down Expand Up @@ -966,30 +965,43 @@ jobs:
command: make -f cannon/Makefile sanitize-program GUEST_PROGRAM=op-program/bin/op-program-client.elf
- run:
name: generate cannon prestate
command: make cannon-prestate
command: make cannon-prestates
- save_cache:
key: cannon-prestate-{{ checksum "./cannon/bin/cannon" }}-{{ checksum "op-program/bin/op-program-client.elf" }}
name: Save Cannon prestate to cache
paths:
- "op-program/bin/prestate.bin.gz"
- "op-program/bin/meta.json"
- "op-program/bin/prestate-proof.json"
- run:
name: generate cannon-mt prestate
command: make cannon-prestate-mt
- save_cache:
key: cannon-prestate-mt-{{ checksum "./cannon/bin/cannon" }}-{{ checksum "op-program/bin/op-program-client.elf" }}
name: Save MT-Cannon prestate to cache
paths:
- "op-program/bin/prestate-mt.json"
- "op-program/bin/meta-mt.json"
- "op-program/bin/prestate-proof-mt.json"
- "op-program/bin/prestate*.bin.gz"
- "op-program/bin/meta*.json"
- "op-program/bin/prestate-proof*.json"
- persist_to_workspace:
root: .
paths:
- "op-program/bin"
- "cannon/bin"

publish-cannon-prestates:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
steps:
- checkout
- attach_workspace:
at: "."
- gcp-cli/install
- gcp-oidc-authenticate:
gcp_cred_config_file_path: /root/gcp_cred_config.json
oidc_token_file_path: /root/oidc_token.json
- run:
name: Upload cannon prestates
command: |
gsutil cp ./op-program/bin/prestate.bin.gz \
gs://oplabs-network-data/proofs/op-program/cannon/${CIRCLE_BRANCH}.bin.gz
gsutil cp ./op-program/bin/prestate-mt.bin.gz \
gs://oplabs-network-data/proofs/op-program/cannon/${CIRCLE_BRANCH}-mt.bin.gz
gsutil cp ./op-program/bin/prestate-interop.bin.gz \
gs://oplabs-network-data/proofs/op-program/cannon/${CIRCLE_BRANCH}-interop.bin.gz
- notify-failures-on-develop:
mentions: "@proofs-team"

preimage-reproducibility:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
Expand Down Expand Up @@ -1495,6 +1507,23 @@ workflows:
- oplabs-gcr-release
requires:
- hold
- cannon-prestate:
filters:
tags:
only: /^op-program\/v.*/
branches:
ignore: /.*/
- publish-cannon-prestates:
context:
- slack
- oplabs-network-optimism-io-bucket
requires:
- cannon-prestate
filters:
tags:
only: /^op-program\/v.*/
branches:
ignore: /.*/

scheduled-todo-issues:
when:
Expand Down Expand Up @@ -1556,6 +1585,17 @@ workflows:
requires:
- contracts-bedrock-build
- cannon-prestate
- publish-cannon-prestates:
context:
- slack
- oplabs-network-optimism-io-bucket
requires:
- cannon-prestate
- op-e2e-cannon-tests
filters:
branches:
only:
- develop

develop-kontrol-tests:
when:
Expand Down
16 changes: 13 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,25 +135,35 @@ reproducible-prestate: ## Builds reproducible-prestate binary
.PHONY: reproducible-prestate

# Include any files required for the devnet to build and run.
DEVNET_CANNON_PRESTATE_FILES := op-program/bin/prestate-proof.json op-program/bin/prestate.bin.gz op-program/bin/prestate-proof-mt.json op-program/bin/prestate-mt.bin.gz
DEVNET_CANNON_PRESTATE_FILES := op-program/bin/prestate-proof.json op-program/bin/prestate.bin.gz op-program/bin/prestate-proof-mt.json op-program/bin/prestate-mt.bin.gz op-program/bin/prestate-interop.bin.gz


$(DEVNET_CANNON_PRESTATE_FILES):
make cannon-prestate
make cannon-prestate-mt
make cannon-prestate-interop

cannon-prestates: cannon-prestate cannon-prestate-mt cannon-prestate-interop
.PHONY: cannon-prestates

cannon-prestate: op-program cannon ## Generates prestate using cannon and op-program
./cannon/bin/cannon load-elf --type singlethreaded-2 --path op-program/bin/op-program-client.elf --out op-program/bin/prestate.bin.gz --meta op-program/bin/meta.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate.bin.gz --meta op-program/bin/meta.json --proof-fmt 'op-program/bin/%d.json' --output ""
mv op-program/bin/0.json op-program/bin/prestate-proof.json
.PHONY: cannon-prestate

cannon-prestate-mt: op-program cannon ## Generates prestate using cannon and op-program in the multithreaded64-2 cannon format
./cannon/bin/cannon load-elf --type multithreaded64-2 --path op-program/bin/op-program-client64.elf --out op-program/bin/prestate-mt.bin.gz --meta op-program/bin/meta-mt.json
cannon-prestate-mt: op-program cannon ## Generates prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf --type multithreaded64-3 --path op-program/bin/op-program-client64.elf --out op-program/bin/prestate-mt.bin.gz --meta op-program/bin/meta-mt.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate-mt.bin.gz --meta op-program/bin/meta-mt.json --proof-fmt 'op-program/bin/%d-mt.json' --output ""
mv op-program/bin/0-mt.json op-program/bin/prestate-proof-mt.json
.PHONY: cannon-prestate-mt

cannon-prestate-interop: op-program cannon ## Generates interop prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf --type multithreaded64-3 --path op-program/bin/op-program-client-interop.elf --out op-program/bin/prestate-interop.bin.gz --meta op-program/bin/meta-interop.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate-interop.bin.gz --meta op-program/bin/meta-interop.json --proof-fmt 'op-program/bin/%d-interop.json' --output ""
mv op-program/bin/0-interop.json op-program/bin/prestate-proof-interop.json
.PHONY: cannon-prestate-interop

mod-tidy: ## Cleans up unused dependencies in Go modules
# Below GOPRIVATE line allows mod-tidy to be run immediately after
# releasing new versions. This bypasses the Go modules proxy, which
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ The Optimism Immunefi program offers up to $2,000,042 for in-scope critical vuln

<pre>
├── <a href="./docs">docs</a>: A collection of documents including audits and post-mortems
├── <a href="./kurtosis-devnet">kurtosis-devnet</a>: OP-Stack Kurtosis devnet
├── <a href="./op-batcher">op-batcher</a>: L2-Batch Submitter, submits bundles of batches to L1
├── <a href="./op-chain-ops">op-chain-ops</a>: State surgery utilities
├── <a href="./op-challenger">op-challenger</a>: Dispute game challenge agent
Expand All @@ -76,7 +77,6 @@ The Optimism Immunefi program offers up to $2,000,042 for in-scope critical vuln
├── <a href="./op-ufm">op-ufm</a>: Simulations for monitoring end-to-end transaction latency
├── <a href="./op-wheel">op-wheel</a>: Database utilities
├── <a href="./ops">ops</a>: Various operational packages
├── <a href="./ops-bedrock">ops-bedrock</a>: Bedrock devnet work
├── <a href="./packages">packages</a>
│ ├── <a href="./packages/contracts-bedrock">contracts-bedrock</a>: OP Stack smart contracts
├── <a href="./semgrep">semgrep</a>: Semgrep rules and tests
Expand Down
11 changes: 6 additions & 5 deletions cannon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@ cannon64-impl:
# It should build the individual versions of cannons and copy them into place in hte multicannon/embeds directory
# Ideally, preserve backwards compatibility with this behaviour but if it needs to change, build-legacy-cannons.sh will
# need to be updated to account for different behaviours in different versions.
# Each embed is suffixed with the latest `StateVersion` number corresponding to the target VM and architecture.
cannon-embeds: cannon32-impl cannon64-impl
# singlethreaded-v2
# 32-bit singlethreaded vm
@cp bin/cannon32-impl ./multicannon/embeds/cannon-2
# multithreaded
@cp bin/cannon32-impl ./multicannon/embeds/cannon-1
# 64-bit multithreaded v2
@cp bin/cannon64-impl ./multicannon/embeds/cannon-4
# 32-bit multithreaded vm
@cp bin/cannon32-impl ./multicannon/embeds/cannon-5
# 64-bit multithreaded vm
@cp bin/cannon64-impl ./multicannon/embeds/cannon-6

cannon: cannon-embeds
env GO111MODULE=on GOOS=$(TARGETOS) GOARCH=$(TARGETARCH) go build -v $(LDFLAGS) -o ./bin/cannon ./multicannon/
Expand Down
2 changes: 1 addition & 1 deletion cannon/cmd/load_elf.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ func LoadELF(ctx *cli.Context) error {
}
return program.PatchStack(state)
}
case versions.VersionMultiThreaded, versions.VersionMultiThreaded64_v2:
case versions.VersionMultiThreaded_v2, versions.VersionMultiThreaded64_v3:
createInitialState = func(f *elf.File) (mipsevm.FPVMState, error) {
return program.LoadELF(f, multithreaded.CreateInitialState)
}
Expand Down
1 change: 0 additions & 1 deletion cannon/mipsevm/debug.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,5 @@ type DebugInfo struct {
MaxStepsBetweenLLAndSC uint64 `json:"max_steps_between_ll_and_sc"`
ReservationInvalidationCount uint64 `json:"reservation_invalidation_count"`
ForcedPreemptionCount uint64 `json:"forced_preemption_count"`
FailedWakeupCount uint64 `json:"failed_wakeup_count"`
IdleStepCountThread0 uint64 `json:"idle_step_count_thread_0"`
}
1 change: 0 additions & 1 deletion cannon/mipsevm/debug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ func TestDebugInfo_Serialization(t *testing.T) {
MaxStepsBetweenLLAndSC: 7,
ReservationInvalidationCount: 8,
ForcedPreemptionCount: 9,
FailedWakeupCount: 10,
IdleStepCountThread0: math.MaxUint64,
}

Expand Down
12 changes: 4 additions & 8 deletions cannon/mipsevm/exec/mips_syscalls.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,8 @@ const (

// SysFutex-related constants
const (
FutexWaitPrivate = 128
FutexWakePrivate = 129
FutexTimeoutSteps = 10_000
FutexNoTimeout = ^uint64(0)
FutexEmptyAddr = ^Word(0)
FutexWaitPrivate = 128
FutexWakePrivate = 129
)

// SysClone flags
Expand Down Expand Up @@ -99,15 +96,14 @@ const (
ClockGettimeMonotonicFlag = 1
)

func GetSyscallArgs(registers *[32]Word) (syscallNum, a0, a1, a2, a3 Word) {
func GetSyscallArgs(registers *[32]Word) (syscallNum, a0, a1, a2 Word) {
syscallNum = registers[register.RegSyscallNum] // v0

a0 = registers[register.RegSyscallParam1]
a1 = registers[register.RegSyscallParam2]
a2 = registers[register.RegSyscallParam3]
a3 = registers[register.RegSyscallParam4]

return syscallNum, a0, a1, a2, a3
return syscallNum, a0, a1, a2
}

func HandleSysMmap(a0, a1, heap Word) (v0, v1, newHeap Word) {
Expand Down
Loading