Inspiration
Outsourcing software development requires establishing trust between involved parties. Our solution automates trust establishment.
What it does
Our solution allows code requestors to specify software requirements and publish a task on the blockchain using smart contracts. Any developer, can then create code fulfilling the requirements. The smart contract is able to check the correctness of the proposed solution and automatically unlock the payment for the developer.
How we built it
The smart contract part resides on ethereum blockchain and is written in Solidity. For code testing purposes, we use GitLab Continuous Integration & Deployment. The requestor specify the environment using .yml files creating a docker image with tests to pass. A developer who wants to write a solution, forks the GitLab repository, adds the requested code and submits it to the smart contract. The smart contract, check if the requested tests passed and unlocks the payment. We use oraclize as an interface between the smart contract and gitlab.
Challenges we ran into
extracting from GitLab verifying remote host identity from smart contracts building docker image inside GitLab environment huge size of Ethereum test network oraclize has limited capacities authentication tokens for GitLab API
Accomplishments that we're proud of
We established communication between the Smart Contract and GitLab, correctly extracting status of submitted code.
What we learned
How to automate builds in GitLab How to make smart contracts interact with external world
What's next for ChainSoft
We would love to continue the project. Improve the quality of the software, extend the interface, the range of possible tests and potentially write a research paper about it.
Log in or sign up for Devpost to join the conversation.