Code Monkey home page Code Monkey logo

saffron's Introduction

Saffron

Better Blockchains for Real World Applications

Travis CI Travis CI

Saffron is a project that aims to make construction and deployment of blockchains easy for developers and enterprises. In it's current form, it relies on the Ethereum technology as a solid base to serve a blockchain with a ton of great features for most use-cases. Here are our goals:

  • Create a Blockchain CLI generator for easy initialization, management, and deployment of private blockchains.
  • Remove transaction costs for using private chains for higher incentive of integration.
  • Provide API's and tools to integrate private chains into web and mobile applications.
  • Create private chain to private chain communication via a main chain 'router' that is free to transact upon.

Where are we at so far?

Right now, we have a simple MVP, which generates contracts for Ethereum blockchains and an API that treats smart contract interaction like API calls. As well as a suite of opensource and optionally deployable admin dashboards.

Give it a go

virtualenv -p python3 venv3_saffron
source venv_saffron/bin/activate
python3 setup.py develop

mkdir saffron
export LAMDEN_HOME=$(pwd)/saffron
export LAMDEN_FOLDER_PATH=$(pwd)
export LAMDEN_DB_FILE=$(pwd)/saffron/saffron.db

saffron --help

API Deployment

deploying the developer services

# Install docker for your platform, and then.
docker-compose up

You can try out the API by using the following bash commands:

Simple version:

cd docker_saffron_ledger_api && gunicorn api:application
echo 'pragma solidity ^0.4.11;contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) suicide(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }' | curl --data-binary @- localhost:8000/some_endpoint

Example:

$ echo 'pragma solidity ^0.4.11;contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) suicide(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }' | curl --data-binary @- localhost:8000/some_endpoint
Created the following files:
    ['greeter.abi', 'greeter.bin', 'mortal.abi', 'mortal.bin']

running the tests

virtualenv venv_saffron
source venv_saffron/bin/activate
python setup.py develop
pip install pytest
py.tests tests

Documentation

saffron's People

Contributors

allen-munsch avatar cmcgrath13 avatar mariohm1311 avatar stuartfarmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saffron's Issues

basic package install format with example icon install

I would be very interested in hearing what we think about deployent of the icons, perhaps we could look to the other projects out there that have done this sort of thing already.

or something like it:

lamden_droplet_public.install.tar.xz

scriptable icon installation

iconutil -c lamden_logo_sized ~/.lamden/lamden.iconset


Creates a custom icon for keepass database files (*.kdb)
# grep kdb /usr/share/mime/globs | egrep -o '.+\/[^:]+' | tr '/' '-'
application-x-keepass ;# rename your icon according to this output
xdg-icon-resource install --size 128 --context mimetypes application-x-keepass.png
https://wiki.archlinux.org/index.php/icons

echo 'application/x-lamden' >> /etc/mime.types
cp ./install/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes

https://specifications.freedesktop.org/icon-theme-spec/latest/ar01s03.html
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
basedir=$HOME/.icons
mkdir $HOME/.icons
mkdir $XDG_DATA_DIRS/icons
mkdir /usr/share/pixmaps

cp $basedir/hicolor/48x48/apps

https://specifications.freedesktop.org/icon-theme-spec/latest/ar01s04.html

It might be the case that we could break this out into a separate repo for the deployment and packaging aspects of the UI/UX and file structure saving.

More Robust Account Information

Create stubs / interface for a straight through web3py interaction of the following functions:

get balance
send transaction
new account

Anything else an admin or user would need to do on a blockchian for accounts?

Duplicate code between CLI and API

Come up with a way to get rid of the duplicate code between the CLI app development and API app development (branches? move everything into the python package?)

Tests for Non-Developers

Can non-developers create new accounts? If so, is this simply through a Mist or Metamask pointed at the RPC?

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.