Skip to content

Commit 73940d5

Browse files
chore: prepare for osaka HF (#788)
Signed-off-by: F Bojarski <[email protected]> Signed-off-by: François Bojarski <[email protected]>
1 parent 34c1293 commit 73940d5

File tree

423 files changed

+22278
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

423 files changed

+22278
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ zkevm_paris.bin
44
zkevm_shanghai.bin
55
zkevm_cancun.bin
66
zkevm_prague.bin
7+
zkevm_osaka.bin
78
zkevm.go.bin
89
zkevm_for_reference_tests.bin
910
zkevm_for_old_replay_tests.bin

Makefile

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ HUB_LONDON := hub/london
4141
HUB_SHANGHAI := hub/shanghai
4242
HUB_CANCUN := hub/cancun
4343
HUB_PRAGUE := hub/prague
44+
HUB_OSAKA := hub/osaka
4445

4546
LIBRARY := library
4647

@@ -54,13 +55,17 @@ MMU := mmu
5455
MMIO_LONDON := mmio/london
5556
MMIO_CANCUN := mmio/cancun
5657

58+
MMU_LONDON := mmu/london
59+
MMU_OSAKA := mmu/osaka
60+
5761
MXP_LONDON := mxp/london
5862
MXP_CANCUN := mxp/cancun
5963

6064
OOB_LONDON := oob/london
6165
OOB_SHANGHAI := oob/shanghai
6266
OOB_CANCUN := oob/cancun
6367
OOB_PRAGUE := oob/prague
68+
OOB_OSAKA := oob/osaka
6469

6570
RLP_ADDR := rlpaddr
6671

@@ -69,6 +74,9 @@ RLP_TXN_CANCUN := rlptxn/cancun
6974
RLP_TXN_PRAGUE := rlptxn/cancun
7075
# TODO: update for Prague v2 + add RLP_AUTH
7176

77+
RLP_TXN_RCPT_LONDON := rlptxrcpt/london
78+
RLP_TXN_RCPT_OSAKA := rlptxrcpt/osaka
79+
7280
RLP_TXRCPT := rlptxrcpt
7381

7482
RLP_UTILS_CANCUN := rlputils/cancun
@@ -93,6 +101,7 @@ TXN_DATA_LONDON := txndata/london
93101
TXN_DATA_SHANGHAI := txndata/shanghai
94102
TXN_DATA_CANCUN := txndata/cancun
95103
TXN_DATA_PRAGUE := txndata/prague
104+
TXN_DATA_OSAKA := txndata/osaka
96105

97106
WCP := wcp
98107

@@ -113,9 +122,7 @@ ZKEVM_MODULES_COMMON := ${CONSTANTS} \
113122
${GAS} \
114123
${LIBRARY} \
115124
${LOG_DATA} \
116-
${MMU} \
117125
${RLP_ADDR} \
118-
${RLP_TXRCPT} \
119126
${ROM} \
120127
${ROM_LEX} \
121128
${SHAKIRA_DATA} \
@@ -131,9 +138,11 @@ ZKEVM_MODULES_LONDON := ${ZKEVM_MODULES_COMMON} \
131138
${HUB_LONDON} \
132139
${LOG_INFO_LONDON} \
133140
${MMIO_LONDON} \
141+
${MMU_LONDON} \
134142
${MXP_LONDON} \
135143
${OOB_LONDON} \
136144
${RLP_TXN_LONDON} \
145+
${RLP_TXN_RCPT_LONDON} \
137146
${TXN_DATA_LONDON}
138147

139148

@@ -146,9 +155,11 @@ ZKEVM_MODULES_SHANGHAI := ${ZKEVM_MODULES_COMMON} \
146155
${HUB_SHANGHAI} \
147156
${LOG_INFO_LONDON} \
148157
${MMIO_LONDON} \
158+
${MMU_LONDON} \
149159
${MXP_LONDON} \
150160
${OOB_SHANGHAI} \
151161
${RLP_TXN_LONDON} \
162+
${RLP_TXN_RCPT_LONDON} \
152163
${TXN_DATA_SHANGHAI}
153164

154165
ZKEVM_MODULES_CANCUN := ${ZKEVM_MODULES_COMMON} \
@@ -159,9 +170,11 @@ ZKEVM_MODULES_CANCUN := ${ZKEVM_MODULES_COMMON} \
159170
${HUB_CANCUN} \
160171
${LOG_INFO_CANCUN} \
161172
${MMIO_CANCUN} \
173+
${MMU_LONDON} \
162174
${MXP_CANCUN} \
163175
${OOB_CANCUN} \
164176
${RLP_TXN_CANCUN} \
177+
${RLP_TXN_RCPT_LONDON} \
165178
${RLP_UTILS_CANCUN} \
166179
${TXN_DATA_CANCUN}
167180

@@ -173,13 +186,31 @@ ZKEVM_MODULES_PRAGUE := ${ZKEVM_MODULES_COMMON} \
173186
${HUB_PRAGUE} \
174187
${LOG_INFO_CANCUN} \
175188
${MMIO_CANCUN} \
189+
${MMU_LONDON} \
176190
${MXP_CANCUN} \
177191
${OOB_PRAGUE} \
178192
${RLP_TXN_PRAGUE} \
193+
${RLP_TXN_RCPT_LONDON} \
179194
${RLP_UTILS_CANCUN} \
180195
${TXN_DATA_PRAGUE}
181196

182-
all: zkevm_london.bin zkevm_paris.bin zkevm_shanghai.bin zkevm_cancun.bin zkevm_prague.bin
197+
ZKEVM_MODULES_OSAKA := ${ZKEVM_MODULES_COMMON} \
198+
${CONSTANTS_PRAGUE} \
199+
${TABLES_PRAGUE} \
200+
${BLOCKDATA_CANCUN} \
201+
${BLS_PRAGUE} \
202+
${HUB_OSAKA} \
203+
${LOG_INFO_CANCUN} \
204+
${MMIO_CANCUN} \
205+
${MMU_OSAKA} \
206+
${MXP_CANCUN} \
207+
${OOB_OSAKA} \
208+
${RLP_TXN_PRAGUE} \
209+
${RLP_TXN_RCPT_OSAKA} \
210+
${RLP_UTILS_CANCUN} \
211+
${TXN_DATA_OSAKA}
212+
213+
all: zkevm_london.bin zkevm_paris.bin zkevm_shanghai.bin zkevm_cancun.bin zkevm_prague.bin zkevm_osaka.bin
183214

184215
zkevm_london.bin: ${ZKEVM_MODULES_LONDON}
185216
${GO_CORSET_COMPILE} -o $@ ${ZKEVM_MODULES_LONDON}
@@ -201,3 +232,7 @@ zkevm_cancun.bin: ${ZKEVM_MODULES_CANCUN}
201232
zkevm_prague.bin: ${ZKEVM_MODULES_PRAGUE}
202233
${GO_CORSET_COMPILE} -o $@ ${ZKEVM_MODULES_PRAGUE}
203234
@$(call warn_lispX)
235+
236+
zkevm_osaka.bin: ${ZKEVM_MODULES_OSAKA}
237+
${GO_CORSET_COMPILE} -o $@ ${ZKEVM_MODULES_OSAKA}
238+
@$(call warn_lispX)

hub/osaka/columns/account.lisp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
(module hub)
2+
3+
(defperspective account
4+
5+
;; selector
6+
PEEK_AT_ACCOUNT
7+
8+
;; account-row columns
9+
((ADDRESS_HI :i32)
10+
(ADDRESS_LO :i128)
11+
(NONCE :i64 :display :dec)
12+
(NONCE_NEW :i64 :display :dec)
13+
(BALANCE :i128 :display :dec)
14+
(BALANCE_NEW :i128 :display :dec)
15+
(CODE_SIZE :i32 :display :dec)
16+
(CODE_SIZE_NEW :i32 :display :dec)
17+
(CODE_HASH_HI :i128)
18+
(CODE_HASH_LO :i128)
19+
(CODE_HASH_HI_NEW :i128)
20+
(CODE_HASH_LO_NEW :i128)
21+
(HAS_CODE :binary) ;; rmk1: explicitly set on every account row, de facto binary
22+
(HAS_CODE_NEW :binary) ;; rmk1
23+
(HAD_CODE_INITIALLY :binary)
24+
(CODE_FRAGMENT_INDEX :i32 :display :dec)
25+
(ROMLEX_FLAG :binary@prove)
26+
(EXISTS :binary) ;; rmk1
27+
(EXISTS_NEW :binary) ;; rmk1
28+
(WARMTH :binary@prove) ;; rmk2: should be binary even without the explicit constraint; we keep it as a safety;
29+
(WARMTH_NEW :binary@prove) ;; rmk2
30+
(MARKED_FOR_DELETION :binary@prove) ;; rmk2
31+
(MARKED_FOR_DELETION_NEW :binary@prove) ;; rmk2
32+
(DEPLOYMENT_NUMBER :i32 :display :dec)
33+
(DEPLOYMENT_NUMBER_NEW :i32 :display :dec)
34+
(DEPLOYMENT_STATUS :binary@prove) ;; rmk2
35+
(DEPLOYMENT_STATUS_NEW :binary@prove) ;; rmk2
36+
37+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38+
;; ;;
39+
;; TRM module lookup columns ;;
40+
;; ;;
41+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42+
43+
(TRM_FLAG :binary@prove)
44+
(IS_PRECOMPILE :binary@prove) ;; rmk: this flag is set from the TRM module the very first time an address is encountered in a conflation, and is conflation-constant; the @prove is redundant; we keep it for safety;
45+
(TRM_RAW_ADDRESS_HI :i128)
46+
47+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
48+
;; ;;
49+
;; RLPADDR module lookup columns ;;
50+
;; ;;
51+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52+
53+
(RLPADDR_FLAG :binary@prove)
54+
(RLPADDR_RECIPE :i8)
55+
(RLPADDR_DEP_ADDR_HI :i32)
56+
(RLPADDR_DEP_ADDR_LO :i128)
57+
(RLPADDR_SALT_HI :i128)
58+
(RLPADDR_SALT_LO :i128)
59+
(RLPADDR_KEC_HI :i128)
60+
(RLPADDR_KEC_LO :i128)
61+
))
62+
63+

hub/osaka/columns/context.lisp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
(module hub)
2+
3+
(defperspective context
4+
5+
;; selector
6+
PEEK_AT_CONTEXT
7+
8+
;; context-row columns
9+
(
10+
;; (immutable) context data
11+
( CONTEXT_NUMBER :i32 ) ;; rmk: deduced from the HUB_STAMP; could likely be reduced to :i24 (i.e. ~ 16M); though: limitless prover ...
12+
( CALL_STACK_DEPTH :i11 ) ;; in the range [0 .. 1024] (inclusive)
13+
( IS_ROOT :binary@prove ) ;; rmk: set at the creation of the context explicitly to 0 or 1; imposed to be context-constant; the @prove is therefore redundant; we keep it for now as a safet;
14+
( IS_STATIC :binary@prove ) ;; rmk: same remark
15+
16+
;; (immutable) account
17+
( ACCOUNT_ADDRESS_HI :i32 )
18+
( ACCOUNT_ADDRESS_LO :i128 )
19+
( ACCOUNT_DEPLOYMENT_NUMBER :i32 )
20+
21+
;; (immutable) account whose bytecode is being executed
22+
( BYTE_CODE_ADDRESS_HI :i32 )
23+
( BYTE_CODE_ADDRESS_LO :i128 )
24+
( BYTE_CODE_DEPLOYMENT_NUMBER :i32 )
25+
( BYTE_CODE_DEPLOYMENT_STATUS :i32 )
26+
( BYTE_CODE_CODE_FRAGMENT_INDEX :i32 )
27+
28+
;; (immutable) caller account
29+
( CALL_DATA_CONTEXT_NUMBER :i32 )
30+
( CALLER_ADDRESS_HI :i32 )
31+
( CALLER_ADDRESS_LO :i128 )
32+
( CALL_VALUE :i128 )
33+
34+
;; (immutable) parameters set at CALL
35+
( CALL_DATA_OFFSET :i32 )
36+
( CALL_DATA_SIZE :i32 )
37+
( RETURN_AT_OFFSET :i32 )
38+
( RETURN_AT_CAPACITY :i32 )
39+
40+
;; (mutable) parameters set when execution resumes after a CALL / CREATE
41+
( UPDATE :binary@prove )
42+
( RETURN_DATA_OFFSET :i32 )
43+
( RETURN_DATA_SIZE :i32 )
44+
( RETURN_DATA_CONTEXT_NUMBER :i32 )
45+
))
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
(module hub)
2+
3+
(defperspective misc
4+
;; selector
5+
PEEK_AT_MISCELLANEOUS
6+
7+
;; miscellaneous-row columns
8+
(
9+
( EXP_FLAG :binary@prove )
10+
( MMU_FLAG :binary@prove )
11+
( MXP_FLAG :binary@prove )
12+
( OOB_FLAG :binary@prove )
13+
( STP_FLAG :binary@prove )
14+
15+
;; EXP columns (DONE)
16+
( EXP_INST :i16 )
17+
( EXP_DATA :array [5] :i128 )
18+
19+
;; MMU columns (DONE)
20+
( MMU_INST :i16 :display :hex)
21+
( MMU_SRC_ID :i32 )
22+
( MMU_TGT_ID :i32 )
23+
( MMU_AUX_ID :i32 )
24+
( MMU_SRC_OFFSET_LO :i128 )
25+
( MMU_SRC_OFFSET_HI :i128 )
26+
( MMU_TGT_OFFSET_LO :i128 )
27+
( MMU_SIZE :i32 )
28+
( MMU_REF_OFFSET :i32 )
29+
( MMU_REF_SIZE :i32 )
30+
( MMU_SUCCESS_BIT :binary@prove )
31+
( MMU_LIMB_1 :i128 )
32+
( MMU_LIMB_2 :i128 )
33+
( MMU_PHASE :i32 )
34+
( MMU_EXO_SUM :i32 )
35+
36+
;; MXP colummns
37+
( MXP_INST :byte )
38+
( MXP_MXPX :binary )
39+
( MXP_DEPLOYS :binary )
40+
( MXP_OFFSET_1_HI :i128 )
41+
( MXP_OFFSET_1_LO :i128 )
42+
( MXP_OFFSET_2_HI :i128 )
43+
( MXP_OFFSET_2_LO :i128 )
44+
( MXP_SIZE_1_HI :i128 )
45+
( MXP_SIZE_1_LO :i128 )
46+
( MXP_SIZE_2_HI :i128 )
47+
( MXP_SIZE_2_LO :i128 )
48+
( MXP_WORDS :i128 )
49+
( MXP_GAS_MXP :i128 )
50+
( MXP_SIZE_1_NONZERO_NO_MXPX :binary@prove )
51+
( MXP_SIZE_2_NONZERO_NO_MXPX :binary@prove )
52+
53+
;; OOB columns
54+
(OOB_INST :i16 )
55+
(OOB_DATA :array[1:10] :i128 )
56+
57+
;; STP columns
58+
( STP_INSTRUCTION :byte )
59+
( STP_GAS_HI :i128 )
60+
( STP_GAS_LO :i128 )
61+
( STP_VALUE_HI :i128 )
62+
( STP_VALUE_LO :i128 )
63+
( STP_EXISTS :binary)
64+
( STP_WARMTH :binary)
65+
( STP_OOGX :binary)
66+
( STP_GAS_MXP :i64 )
67+
( STP_GAS_UPFRONT_GAS_COST :i64 )
68+
( STP_GAS_PAID_OUT_OF_POCKET :i64 )
69+
( STP_GAS_STIPEND :i12 )
70+
71+
;; ``truly'' miscellaneous columns
72+
( CCSR_FLAG :binary) ;; Child Context Self Reverts Flag;
73+
( CCRS_STAMP :i32 ) ;; Child Context Revert Stamp
74+
))

0 commit comments

Comments
 (0)