Code Monkey home page Code Monkey logo

blockops's Introduction

Blockops: Blockchain Devops

This repository is a Subutai project template to rapidly setup Ethereum Blockchain based Dapp projects and the infrastructure needed for them. It uses the best of breed patterns and tools to rapidly develop and deploy Dapps with their Ethereum Smart Contracts onto test and production blockchains.

What does it do?

It makes life easy and increases productivity for Dapp developers by automating the use of patterns and tools to remove human error in the Dapp development and operations lifecycle:

  1. change the code
  2. unit test it
  3. deploy to a test network
  4. integration test
  5. verification test
  6. deploy to a production network

It helps cycle over and over again with reproducable results so you can spend your time working on your Solidity Smart Contracts and Dapp code.

Hence the name, blockops!

The blockchain is complex enough with several moving parts. Let's not make it harder than it needs to be with proper blockchain devops.

Is Blockops something you should use?

Ask yourself:

  1. Are you just starting to develop Solidity based Smart Contracts?
  2. Are you new to the tools and deployment patters around blockchain?
  3. Do you want to get up and running rapidly?
  4. Do you want a pre-packaged project to facilitate the change, deploy, and test lifecycle?
  5. Do you lack the knowhow to create your own blockchain network or sidechain?
  6. Do you lack the infrastructure needed to do so?
  7. Need something to guide and show you how it is done right?

If you answered yes to any of these questions then Blockops is what you are looking for. Developing reliable and tested Dapps is a PITA without the tools, configuration management, and infrastructure to make the process simple and easy.

Plus because the project uses a Subutai Blueprint, you and your friends can instantly setup infrastructure across shared resources to run your Dapps on your own P2P cloud for testing, development, and even production.

Testing Integration

Unit testing, integration testing, and verification testing are all important aspects of building proper Dapps that go beyond the academic examples found in textbooks. Often developers overlook the need to write unit tests because they don't have time to deal with the automation scaffolding involved to integrate test runs as part of the process. Most don't even get to the level of integration testing, and you might as well forget about through contract verification testing.

It's like sex in high school: everyone talks about it, but almost no one does it.

Project Drivers

We found ourselves always having to recreate the same skeletal infrastructure every time we wanted to start on a new Dapp. That usually sucked a day or two of time so we wanted the machines to handle this for us in minutes at a press of a button.

Doing this manually produced different results by different developers, so again we knew the machines can do it better and more reliably: i.e. some developers don't think certain automatic workflow features like running test cases before deploying are important. This template requires unit tests to run before deploying contracts onto sidechains or private networks. There's more to it and much more to come to make life as simple stupid as possible for passionately process oriented developers.

It was created for those interested in doing things right, properly, with a hard core approach that is the same every time. Predictability, reliability, testing and devops go together.

This is a tool in our toolbox that we want to share with others. Please help us make it better.

Using the Example Application

This template comes with an example market maker (cryptocurrency exchange component) Dapp. You can install this to test the template then replace the Dapp with your own.

NOTE: The market maker is a trivial application and not intended for production so we accept no liability or make no guarantees. Use it at your own risk.

Install dependencies

npm install --save

Deploy contracts to local blockchain

truffle migrate --network development  --reset

Run tests

  1. Compile contracts with the command
truffle compile
  1. Run tests
npm run test

Requirements to run application

  1. Change production section in truffle.js

  2. Deploy contracts to testnet, with command:

truffle migrate --network production  --reset
  1. Run application
npm run start

blockops's People

Contributors

absidish avatar platium avatar akarasulu 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.