sdaveas / popow Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dionyziz/popow
Research and implementation for non-interactive blockchain proofs of proofs of work
This project forked from dionyziz/popow
Research and implementation for non-interactive blockchain proofs of proofs of work
Possible reasons:
Edit:
proof of 45.000 and 450.000 blocks takes around the same time
Ultimately, display gas-per-line
Operation from , Algorithm 1, line 10 is missing from
---------+---x1----> Ca
|
+---> Cb
and
---------+--------> Ca
|
+--x2-> Cb
Ca
and Cb
which have a common ancestor blockCa
contains block x1
and only Cb
contains x2
submit_event_proof(Ca, x1)
and submit_contesting_proof(Cb, x1)
submit_event_proof(Cb, x2)
and submit_contesting_proof(Ca, x2)
Pn
denotes the proof that was generated for chain Cn
x0
contained in Pa
and Pb
---x0---+--------> Ca
|
+---> Cb
test case | expected output | reason | received output |
---|---|---|---|
submit_event_proof(Pa, x0) | TRUE | x0 in Ca |
TRUE |
submit_contest_proof(Pb, x0) | FALSE | |Cb| < |Ca|; existing proof is stronger | FALSE |
-- | |||
submit_event_proof(Pb, x0) | TRUE | x0 in Cb |
TRUE |
submit_contest_proof(Pa, x0) | FALSE | FALSE |
x1
contained in Pa
but not in Pb
--------+---x1---> Ca
|
+---> Cb
test case | expected output | reason | received output |
---|---|---|---|
submit_event_proof(Pa, x1) | TRUE | x1 in Ca |
TRUE |
submit_contest_proof(Pb, x1) | FALSE | |Cb| < |Ca|; existing proof is stronger | FALSE |
-- | |||
submit_event_proof(Pb, x1) | FALSE | x1 not in Cb |
FALSE |
submit_contest_proof(Pa, x1) | FALSE | event x1 is not mapped yet |
FALSE |
x2
contained in Pb
but not in Pb
--------+----------> Ca
|
+--x2--> Cb
test case | expected output | reason | received output |
---|---|---|---|
submit_event_proof(Ca, x2) | FALSE | x2 not in Ca |
FALSE |
submit_contest_proof(Cb, x2) | FALSE | event x2 is not mapped yet |
FALSE |
-- | |||
submit_event_proof(Cb, x2) | TRUE | x2 in Cb |
TRUE |
submit_contest_proof(Ca, x2) | TRUE | |Ca| > |Cb| and x2 not in Ca ; honest chain does not include 'x2' |
TRUE |
Py-EVM
's time should be displayed after Ganache
's start message. Instead, we are getting this:
Testing Py-EVM
Deploying satellite connection
submit_event_proof 10888154
Testing ganache // This sould be displayed after the row below
Time elapsed: 7.63306736946106
Value has not been added to the function call of Web3. Due to this fact, the value of collateral to pay z
in the contract manually becomes 0.
This issue was opened from the terminal!
Check if everything is legit in .
See a32079a.
This is also related to #9
(That was a false alarm, see #8 (comment))
After aae3a12 the gas results for submitting an invalid contesting_contesting_proof()
were the following
see #8 (comment)
Case | gas with previous implementation | gas with current implementation |
---|---|---|
Block of interest is a common block | 6.079.835 | 2.279.992 |
Block of interest is only in big chain | 6.079.643 | 2.279.800 |
Issue #9 did some high level testing but there are more some case to be addressed.
This will close #2 as well
Check if nipopowContract.sol works correctly under in the following cases:
μ
s
struct Nipopow
consists of various attributes, some of which are used only locally in functions. Check if they can be removed from the struct
and used as local variables. This will save storage gas.
// Nipopow proof.
struct Nipopow {
mapping (bytes32 => bool) curProofMap; // <--- This one
mapping (uint => uint) levelCounter; // <--- This one
mapping (bytes32 => mapping(bytes32 => bool)) blockPrecedence;
mapping (bytes32 => bytes32[]) blockDAG;
mapping (bytes32 => bool) visitedBlock;
bytes32[] traversal_stack;
bytes32[] ancestors;
bytes32[] best_proof;
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.