algorithmiaio / danku

Exchange ML models in a trustless manner!
148 stars 30 forks source link

Request: Fix geopandas req, update instructions/code for visualizing results #12

Open kaustavha opened 6 years ago

kaustavha commented 6 years ago

Hi there! Really interesting project. We unfortunately couldnt spend enough time on this before the submission period expired :( We also used google collaboratory and infura, which made the setup a lot easier.

Are there any plans on releasing a similar contract on a test-net for users to practice against?

Also had some requests:

cc @ClairHu

besirkurtulmus commented 6 years ago

@kaustavha Thanks for the feedback. Really appreciated.

Keep in mind that this is an open-source project, and you're welcome to make pull-requests.

1. Requirements issue

I've fixed the typo in the requirements.txt file.

2. Public/Private functions in the contract

I've been looking into trying to find a workaround for calling the constant model_accuracy() function.

I didn't really think about calling that function later, and just decided to disable it after the competition ended. You can see that in line 317 in the contracts/Danku_demo.sol contract.

The forward_pass2() is still public, and should be able to take the network definition with weights, and a single data point (as defined in the input layer). The problem with this is that there's no trivial way to get the submitted models directly, as we would need to decode them in python. (they're public, but we don't have any proper getters for them in populus as far as I can see)

To understand which functions can't be called, just look at the assert() call at the start of every function. If it has the following, the function won't run:

assert(contract_terminated == false);

I'll look into what I can do, but I'm also open to suggestings too.

3. Solidity highlighting

Thanks for the highlighting info! :)

4. Linux system dependencies

Are those for geth? If so, I didn't want to include them because it's a seperate project, and it's installation instructions may change at anytime.

kaustavha commented 6 years ago

The linux system deps were for solc I believe, we used infura's API instead of setting up our own geth instance.