Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
6305203f
Unverified
Commit
6305203f
authored
Apr 24, 2023
by
protolambda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
readme: update directory layout, update license note to reflect removal of minigeth
parent
de8f023d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
34 deletions
+6
-34
README.md
README.md
+6
-34
No files found.
README.md
View file @
6305203f
...
@@ -22,10 +22,11 @@ For more information on Cannon's inner workings, check [this overview][overview]
...
@@ -22,10 +22,11 @@ For more information on Cannon's inner workings, check [this overview][overview]
## Directory Layout
## Directory Layout
```
```
minigeth -- A standalone "geth" capable of computing a block transition
contracts -- A MIPS emulator implementation, using merkleized state and a pre-image oracle.
mipigo -- minigeth compiled for MIPS. Outputs a MIPS binary that's run and mapped at 0x0
example -- Example programs that can be run and proven with Cannon.
mipsevm -- A MIPS runtime in the EVM (works with contracts)
extra -- Extra scripts and legacy contracts, deprecated.
contracts -- A Merkleized MIPS processor on chain + the challenge logic
mipsevm -- Go tooling to test the onchain MIPS implementation, and generate proof data.
unicorn -- Sub-module, used by mipsevm for offchain MIPS emulation.
```
```
## Building
## Building
...
@@ -37,38 +38,9 @@ make build
...
@@ -37,38 +38,9 @@ make build
make test # verify everything works correctly
make test # verify everything works correctly
```
```
## Examples
The script files
[
`demo/challenge_simple.sh`
](
demo/challenge_simple.sh
)
and
[
`demo/challenge_fault.sh`
](
demo/challenge_fault.sh
)
present two example scenarios demonstrating the
whole process of a fault proof, including the challenge game and single step verification.
-
In the
`simple`
challenge, the challenger uses the wrong block data in his challenge.
-
In the
`fault`
scenario, fault injection is used to alter the challenger's memory at a specific
step of the execution.
In both cases, the challenger fails to challenge the block. Refer to the documentation string at the
top of these file for more details regarding the scenario.
## State Oracle API
On chain / in MIPS, we have two simple oracles
*
InputHash() -> hash
*
Preimage(hash) -> value
We generate the Preimages in x86 using geth RPC
*
PrefetchAccount
*
PrefetchStorage
*
PrefetchCode
*
PrefetchBlock
These are NOP in the VM
## License
## License
M
ost of this code is MIT licensed, minigeth is LGPL3
.
M
IT, see
[
`LICENSE`
](
./LICENSE
)
file
.
Note: This code is unaudited. It in NO WAY should be used to secure any money until a lot more
Note: This code is unaudited. It in NO WAY should be used to secure any money until a lot more
testing and auditing are done. I have deployed this nowhere, have advised against deploying it, and
testing and auditing are done. I have deployed this nowhere, have advised against deploying it, and
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment