GithubHelp home page GithubHelp logo

ravisinghsfbay / scorex-lagonaki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from input-output-hk/scorex

0.0 3.0 0.0 3.49 MB

Ultra-compact cryptocurrency engine for hacking around within just 4K lines of Scala code

License: Creative Commons Zero v1.0 Universal

Scala 75.01% Shell 0.03% Java 24.96%

scorex-lagonaki's Introduction

Scorex - Lagonaki Release

This is the pretty buggy initial release version! Please report bugs found, and contribute with fixes, if possible.

Motivation

There are two huge problems around cryptocurrencies development project Scorex aims to weaken:

  • Bitcoin source code contains more 100K lines of code(80K of C++ only), Nxt is about more than 45K line of Java code. All parts of the design(network/transactions/consensus layers) are mixed in a hard way. So researchers & developers are not in good start positions to make experiments.

In opposite, Scorex is less than 4K lines of Scala code. Transactions layer is as simple as that. Consensus algo could be switched easily(with two consensus algos out of the box, one could be replaced with an another with just one line of code edited!)

  • Major coins forks are trying to make IPO immediately, often having just one or two pretty controversial feature. Scorex is intentionally not production-ready, so please participate in experiments built on top of it, but don't buy tokens unless you are 100% sure what are you doing.

Features

  • Compact, functional, actors-powered code
  • Two 100% Proof-of-Stake consensus algos out of the box, Nxt-like and Qora-like. One algo could be replaced with an another with just one line of code edited (in Constants.scala)
  • Simplest transactions model
  • Asynchronous network layer on top of TCP
  • JSON API
  • Command line client for the JSON API
  • Curve25519 for signatures

Installation

  • Ubuntu Server

Install Oracle Java8 JDK:

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list

echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

apt-get update

apt-get install oracle-java8-installer

and agree with license terms

Install SBT(Scala Build Tool):

echo "deb http://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list apt-get update apt-get install sbt

Run

Run one or two peers on the local machine:

  • run "sbt recompile" to (re-)build .jar file
  • run "sbt startLocal1" to run first local peer binded to 127.0.0.1:9084 . Edit settings in settings-local1.json if needed
  • run "sbt startLocal2" to run second local peer binded to 127.0.0.2:9084 . Edit settings in settings-local2.json if needed
  • You can run both peers simultaneously by running "sbt startLocal"

You can also run "sbt start" script to connect to the network, but network is down now :) You can edit folders / other settings in settings.json file before running ./start.sh.

Command-Line Client

Run ./cli.sh after launching server to issue API requests to it via command-line client. See API section below. Some examples of CLI commands:

  • GET blocks/first
  • POST payment {"amount":400, "fee":1, "sender":"2kx3DyWJpYYfLErWpRMLHwkL1ZGyKHAPNKr","recipient":"Y2BXLjiAhPUMSo8iBbDEhv81VwKnytTXsH"}

API

There's separate API.md file with API description

Current Limitations

todo: current glitches / limitations list

Roadmap

Documentation

The Architecture Of A Cryptocurrency

Contributions

Contributions are welcome!

License

To the extent possible under law, the authors have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. You can find applied CC0 license legalcode in the COPYING

scorex-lagonaki's People

Contributors

kushti avatar pozharko avatar cryptox8 avatar

Watchers

 avatar James Cloos 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.