Giter Club home page Giter Club logo

danku's Introduction

Danku

Machine Learning algorithms are being developed and improved at an incredible rate, but are not necessarily getting more accessible to the broader community. That’s why today Algorithmia is announcing DanKu, a new blockchain-based protocol for evaluating and purchasing ML models on a public blockchain such as Ethereum. DanKu enables anyone to get access to high quality, objectively measured machine learning models. At Algorithmia, we believe that widespread access to algorithms and deployment solutions is going to be a fundamental building block of a balanced future for AI, and DanKu is a step towards that vision.

The DanKu protocol utilizes blockchain technology via smart contracts. The contract allows anyone to post a data set, an evaluation function, and a monetary reward for anyone who can provide the best trained machine learning model for the data. Participants train deep neural networks to model the data, and submit their trained networks to the blockchain. The blockchain executes these neural network models to evaluate submissions, and ensure that payment goes to the best model.

The contract allows for the creation of a decentralized and trustless marketplace for exchanging ML models. This gives ML practitioners an opportunity to monetize their skills directly. It also allows any participant or organization to solicit machine learning models from all over the world. This will incentivize the creation of better machine learning models, and make AI more accessible to companies and software agents. Anyone with a dataset, including software agents can create DanKu contracts.

Whitepaper

0. Requirements

To run the DanKu unittests, we first need to setup our local development environment. The following commands have been tested for OSX and Linux.

0.1. Installing the Solidity Compiler

For OSX

Install a these homebrew packages:

brew install pkg-config libffi autoconf automake libtool openssl

Install the solidity compiler (solc):

brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity
brew link solidity

For Linux

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc libssl-dev

0.2. Initialize your Virtual Environment

Install virtualenv if you don't have it yet. (Comes installed with Python3.6)

Setup a virtual environment with Python 3:

cd danku;
python3.6 -m venv venv;
source venv/bin/activate;

0.3. Install the Populus Framework

Install populus and other requirements while in virtualenv:

pip install -r requirements.txt

Yay! You should be able to develop Ethereum contracts in Python 3 now!

1. Populus

All contracts are developed and tested using the Populus framework.

To compile all contracts, run the following:

populus compile

To run all the tests, use the following:

python -m pytest --disable-pytest-warnings tests/*

2. Danku Contracts

The DanKu contract can be found in the contracts directory.

For more information about DanKu contracts, please read the white paper.

danku's People

Contributors

besirkurtulmus avatar kennydaniel avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.