This repository contains the supplementary code for the paper "GENKIDAMA: Cross-Chain Rollup for Scalable Blockchain Interoperability".
Our rollup contract can be used on any blockchain that supports Solidity contracts. This project demonstrates how to execute cross-chain transactions using our FullRollup contract.
To run this project, you will need the following dependencies:
- Go (version > 1.20)
- Geth (version 1.12)
- Evmos (latest version)
- Gnark (version 0.8.1)
-
Clone the repository:
git clone https://github.com/jds250/GenkiDama.git cd GenkiDama
-
Install Go:
Ensure you have Go installed and the version is greater than 1.20. You can download and install it from Go's official site.
-
Install Geth:
Install Geth (Go-Ethereum) version 1.12. Instructions can be found on the Geth installation page.
-
Install Evmos:
Follow the instructions on the Evmos GitHub repository to install the latest version.
-
Install Gnark:
Install Gnark version 0.8.1 by following the instructions on the Gnark GitHub repository.
To execute a cross-chain transaction, you first need to deploy the FullRollup contract on two target chains.
-
Deploy FullRollup Contract:
Deploy the contract using your preferred Solidity development environment (e.g., Remix, Hardhat, Truffle).
-
Generate Go-Bindings:
Use the
abigen
tool to generate Go bindings for the deployed contract:abigen --sol=path/to/FullRollup.sol --pkg=yourpackage --out=fullrollup.go
-
Configure Parameters:
Edit the parameters in the
Rollup-Offchain/example/test.go
file to match your deployment setup. -
Run the Example Test:
go run example/test.go