Skip to content

Commit 1985e54

Browse files
authored
[Feat] For prover 4.6.1 (#1742)
1 parent bfc0fdd commit 1985e54

File tree

16 files changed

+711
-331
lines changed

16 files changed

+711
-331
lines changed

Cargo.lock

Lines changed: 576 additions & 321 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ repository = "https://github.com/scroll-tech/scroll"
1717
version = "4.5.47"
1818

1919
[workspace.dependencies]
20-
scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" }
21-
scroll-zkvm-verifier = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" }
22-
scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" }
20+
# include compatiblity fixing from "fix/coordinator"
21+
scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "a71dd2b" }
22+
scroll-zkvm-verifier = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "a71dd2b" }
23+
scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "a71dd2b" }
2324

2425
sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "master", features = ["scroll", "rkyv"] }
2526
sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "master" }

common/version/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"runtime/debug"
66
)
77

8-
var tag = "v4.5.49"
8+
var tag = "v4.6.1"
99

1010
var commit = func() string {
1111
if info, ok := debug.ReadBuildInfo(); ok {

coordinator/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ coordinator_tool:
3535
go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_tool ./cmd/tool
3636

3737
localsetup: coordinator_api ## Local setup: build coordinator_api, copy config, and setup releases
38+
mkdir -p build/bin/conf
3839
@echo "Copying configuration files..."
39-
cp -r $(PWD)/conf $(PWD)/build/bin/
40+
cp -r $(PWD)/conf/config.json $(PWD)/build/bin/conf/config.template.json
4041
@echo "Setting up releases..."
4142
cd $(PWD)/build && bash setup_releases.sh
4243

coordinator/build/setup_releases.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if [ -z "${SCROLL_ZKVM_VERSION}" ]; then
77
fi
88

99
# set ASSET_DIR by reading from config.json
10-
CONFIG_FILE="bin/conf/config.json"
10+
CONFIG_FILE="bin/conf/config.template.json"
1111
if [ ! -f "$CONFIG_FILE" ]; then
1212
echo "Config file $CONFIG_FILE not found"
1313
exit 1
@@ -53,6 +53,7 @@ for ((i=0; i<$VERIFIER_COUNT; i++)); do
5353
# assets for verifier-only mode
5454
echo "Downloading assets for $FORK_NAME to $ASSET_DIR..."
5555
wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/verifier.bin -O ${ASSET_DIR}/verifier.bin
56+
wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/root_verifier_vk -O ${ASSET_DIR}/root_verifier_vk
5657
wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/openVmVk.json -O ${ASSET_DIR}/openVmVk.json
5758

5859
echo "Completed downloading assets for $FORK_NAME"

coordinator/internal/logic/libzkp/lib.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,20 @@ func SetDynamicFeature(feats string) {
147147
defer freeCString(cFeats)
148148
C.set_dynamic_feature(cFeats)
149149
}
150+
151+
// UnivTaskCompatibilityFix calls the universal task compatibility fix function
152+
func UniversalTaskCompatibilityFix(taskJSON string) (string, error) {
153+
cTaskJSON := goToCString(taskJSON)
154+
defer freeCString(cTaskJSON)
155+
156+
resultPtr := C.univ_task_compatibility_fix(cTaskJSON)
157+
if resultPtr == nil {
158+
return "", fmt.Errorf("univ_task_compatibility_fix failed")
159+
}
160+
161+
// Convert result to Go string and free C memory
162+
result := C.GoString(resultPtr)
163+
C.release_string(resultPtr)
164+
165+
return result, nil
166+
}

coordinator/internal/logic/libzkp/libzkp.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,7 @@ void release_string(char* string_ptr);
5656

5757
void set_dynamic_feature(const char* feats);
5858

59+
// Universal task compatibility fix function
60+
char* univ_task_compatibility_fix(char* task_json);
5961

6062
#endif /* LIBZKP_H */

coordinator/internal/logic/provertask/batch_prover_task.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,14 @@ func (bp *BatchProverTask) Assign(ctx *gin.Context, getTaskParameter *coordinato
213213
return nil, ErrCoordinatorInternalFailure
214214
}
215215
proverTask.Metadata = metadata
216+
217+
if isCompatibilityFixingVersion(taskCtx.ProverVersion) {
218+
log.Info("Apply compatibility fixing for prover", "version", taskCtx.ProverVersion)
219+
if err := fixCompatibility(taskMsg); err != nil {
220+
log.Error("apply compatibility failure", "err", err)
221+
return nil, ErrCoordinatorInternalFailure
222+
}
223+
}
216224
}
217225

218226
// Store session info.

coordinator/internal/logic/provertask/bundle_prover_task.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,14 @@ func (bp *BundleProverTask) Assign(ctx *gin.Context, getTaskParameter *coordinat
211211
// bundle proof require snark
212212
taskMsg.UseSnark = true
213213
proverTask.Metadata = metadata
214+
215+
if isCompatibilityFixingVersion(taskCtx.ProverVersion) {
216+
log.Info("Apply compatibility fixing for prover", "version", taskCtx.ProverVersion)
217+
if err := fixCompatibility(taskMsg); err != nil {
218+
log.Error("apply compatibility failure", "err", err)
219+
return nil, ErrCoordinatorInternalFailure
220+
}
221+
}
214222
}
215223

216224
// Store session info.

coordinator/internal/logic/provertask/prover_task.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"gorm.io/gorm"
1515

1616
"scroll-tech/common/types/message"
17+
"scroll-tech/common/version"
1718

1819
"scroll-tech/coordinator/internal/config"
1920
"scroll-tech/coordinator/internal/logic/libzkp"
@@ -201,6 +202,23 @@ func (b *BaseProverTask) applyUniversal(schema *coordinatorType.GetTaskSchema) (
201202
return schema, []byte(metadata), nil
202203
}
203204

205+
const CompatibilityVersion = "4.5.43"
206+
207+
func isCompatibilityFixingVersion(ver string) bool {
208+
return !version.CheckScrollRepoVersion(ver, CompatibilityVersion)
209+
}
210+
211+
func fixCompatibility(schema *coordinatorType.GetTaskSchema) error {
212+
213+
fixedTask, err := libzkp.UniversalTaskCompatibilityFix(schema.TaskData)
214+
if err != nil {
215+
return err
216+
}
217+
schema.TaskData = fixedTask
218+
219+
return nil
220+
}
221+
204222
func newGetTaskCounterVec(factory promauto.Factory, taskType string) *prometheus.CounterVec {
205223
getTaskCounterInitOnce.Do(func() {
206224
getTaskCounterVec = factory.NewCounterVec(prometheus.CounterOpts{

0 commit comments

Comments
 (0)