Open juliusbenson opened 8 years ago
Code we need to write: -an html landing page, probably that contains the javascript code to make blockchain requests -php code to request the database for the master hash, the database then gives us a URL for the file corresponding to that hash. -solidity for the voting contract --This code exposes 4 functions: "get master hash", "commit vote", "add voter", and "remove voter" --This code keeps track of 2 things: "master hash", and a key-value pair list of voter public keys and the "new master hash" each of them has voted for. --This code has some logic that, at the end of every voting period, it counts all the votes, and the "new master hash" that has the most voters behind it, becomes the new "master hash"
Research we need to do: -how in the world do we even code php in the first place? -look into the api for the ethereum js library and figure out how to make requests to and get data from the blockchain -How do we set up a database on EC2? Where/how are we storing the files?
Ok, so Max and I met up today briefly and laid out a vague timeline with tasks for each file.
Timeline
<div>
.
4b. We need to VERIFY the page that comes back to the user, in case the SQL database gets hacked. The javascript should have a subroutine that hashes the body of the proposal to make sure it matches with the hast we got back from the contract. This is actually why I prefer just storing the whole body of the proposal in the database, because I think it would probably be easier to hash the proposal body if we actually got the proposal body back from the database, as opposed to just blindly redirecting to wherever the database tells us to.
4c. Testing! This is just more javascript testing.NOTE: I didn't really include testing in my approximation of the timeline dates
Ok, cool. So, who wants to work on what? I've sort of been playing around a bit with MySQL and WAMP to familiarize myself with PHP, so I'd be down to grab that task if nobody else wants it.
That's great Julius! I've been thinking and in my opinion I think if we followed our implementation/verification model at work, we could have:
we can always work together on stuff too! Verifier role will be big because of test cases. -Max
Let's have a conversation about how to build this software