Skip to content
Matter Labs' ZK Rollup
Rust JavaScript Vue Makefile Shell PLpgSQL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin publish Sep 18, 2019
core publish Sep 18, 2019
docker publish Sep 18, 2019
etc publish Sep 18, 2019
Cargo.lock publish Sep 18, 2019
Cargo.toml publish Sep 18, 2019
LICENSE-MIT publish Sep 18, 2019
Makefile publish Sep 18, 2019 Update Sep 19, 2019
docker-compose.yml publish Sep 18, 2019
yarn.lock publish Sep 18, 2019

FRANKLIN: Matter Labs' Rollup: commit-chain driven by SNARKs



Prepare dev environment prerequisites: see docs/

Setup local dev environment

First-time setup:

franklin init

To completely reset the dev environment:

  • Stop services: franklin dev-down
  • Remove mounted container data: rm -rf ./volumes
  • Repeat the setup procedure above

(Re)deploy db and contraсts:

franklin redeploy

Environment configurations

Env config files are held in etc/env/

List configurations:

franklin env

Switch between configurations:

franklin env <ENV_NAME>

Monitoring & management:

Seed for Metamask: fine music test violin matrix prize squirrel panther purchase material script deal Geth: geth attach http://localhost:8545

NOTE: if you are resetting geth, each Metamask account must be manually reset via Settings > Advanced > Reset account.

Blockscout (local blockchain explorer)

It generates quite some CPU load, but might be useful to visualize blockchain activity. Use with caution.

  • Migrate blockscout (do this once to setup database): franklin blockscout-migrate

  • Start: franklin blockscout-up

  • Stop: franklin blockscout-down

Blockscout will be available at http://localhost:4000/txs

Build and run server + prover locally:

franklin server
franklin prover
franklin client

Client UI will be available at http://localhost:8080

Start server and prover as local docker containers:

  • Start: franklin start

  • Watch logs: franklin logs

  • Stop: franklin stop

Build and push images to dockerhub:

franklin push


Database migrations

  • cd core/storage
  • Add diesel migration
  • Rename core/storage/ to
  • Run tests: franklin db-tests

Generating keys

To generate a proving key, from server dir run:

cargo run --release --bin read_write_keys

It will generate a *VerificationKey.sol and *_pk.key files for 'deposit', 'exit' and 'transfer' circuits in the root folder.

Move files to proper locations:

mv -f n*VerificationKey.sol ./contracts/contracts/
mv -f *_pk.key ./prover/keys/

If the pregenerated leaf format changes, replace the EMPTY_TREE_ROOT constant in contracts/contracts/PlasmaStorage.sol.


Re-build contracts:

cd contracts; yarn build

IMPORTANT! Generated .abi and .bin files are fed to cargo to build module plasma::eth.

So you need to rebuild the code on every change (to be automated).

Publish source code on etherscan

franklin flatten source
You can’t perform that action at this time.