This issue is specifically about developing a Zokrates Plugin.
Proposal for implementation
(You don't need to strictly follow this proposal, we would like to have your feedback)
Zokrates is a toolbox that aims at bringing better privacy and scalability to Ethereum using zkSNARKs.
It enables developers to design programs whose correct execution can be checked on chain, optionally hiding some of the inputs fed into the program.
The first features to integrate are likely to be compile which you can find in zokrates-code/src/compile.rs. Feel free to set resolve_option to None at first, which will disable import statements in ZoKrates code.
Possibly use the zokrates-wasm-wrapper crate on this (outdated) branch if you need Javascript bindings
Then move to compute-witness which runs the ZoKrates program given inputs
Then we can use the library:
Plugin UI:
should listen on *.code file being displayed, run the compilation, display an error if any, or compilation succeed with infos.
should accept input parameter, and execute the code
Some further tasks:
Move over to setup and generate-proof which are the intensive tasks of the pipeline. You can checkout the work done in this issue HarryR/ethsnarks#7
Write a github resolver to reenable imports, following the example of zokrates_fs_resolver
Team
We are the team behind Remix IDE and related libraries, using this hackathon as a kickstart for the Remix API.
We've setup an extended team for helping you during this event
Remix team - @ninabreznik @serapath @ryestew @yann300 @iurimatias
Go team - @ligi @holiman
Solidity team - @leonardoalt @chriseth
C++, ewasm - @chfast @axic
Beside normal funding, we will at the end of the event select 4 teams that will receive sponsorship from the Ethereum Foundation.
Be sure to contact us at any time online or grab us directly at the event.
Skills wanted
JavaScript / Ethereum
Communication
We will be around giving advice and helping if needed.
And in any case just drop your thoughts there ;)
Zokrates Plugin
(subject to change)
We've been releasing an API (available in http://remix-alpha.ethereum.org) which allows developing plugin for Remix. (See https://github.com/ethereum/remix/blob/master/docs/remix_plugin.md and https://github.com/ethereum/remix/blob/master/docs/remix_plugin_api.md) Checkout https://remix-alpha.ethereum.org /
settings tab / Oraclize
for a live example.This issue is specifically about developing a
Zokrates Plugin
.Proposal for implementation
(You don't need to strictly follow this proposal, we would like to have your feedback) Zokrates is a toolbox that aims at bringing better privacy and scalability to Ethereum using zkSNARKs.
It enables developers to design programs whose correct execution can be checked on chain, optionally hiding some of the inputs fed into the program.
You can watch an introduction to the toolbox, see the code and see an example of ZoKrates program.
This plugin aims to put Zokrates in a JavaScript like environment.
The develop branch will be used to generate the wasm library usable in the browser.
The suggested approach is the following:
zokrates-core
crate and check that you can compile it to wasmcompile
which you can find inzokrates-code/src/compile.rs
. Feel free to setresolve_option
toNone
at first, which will disable import statements in ZoKrates code.zokrates-wasm-wrapper
crate on this (outdated) branch if you need Javascript bindingscompute-witness
which runs the ZoKrates program given inputsThen we can use the library:
Plugin UI:
Some further tasks:
setup
andgenerate-proof
which are the intensive tasks of the pipeline. You can checkout the work done in this issue HarryR/ethsnarks#7zokrates_fs_resolver
Team
We are the team behind Remix IDE and related libraries, using this hackathon as a kickstart for the Remix API. We've setup an extended team for helping you during this event
Beside normal funding, we will at the end of the event select 4 teams that will receive sponsorship from the Ethereum Foundation.
Be sure to contact us at any time online or grab us directly at the event.
Skills wanted
JavaScript / Ethereum
Communication
We will be around giving advice and helping if needed. And in any case just drop your thoughts there ;)
https://gitter.im/ethereum/remix-dev-plugin
How to get started:
src
folder