Giter Site home page Giter Site logo

core's Introduction

Nimiq Blockchain Build Status

Nimiq is a frictionless payment protocol for the web.

For a high-level introduction checkout the Nimiq White Paper.

Library Demo

Check out our betanet Browser Miner.

Quickstart

  1. Clone this repository git clone https://github.com/nimiq-network/core.
  2. Run npm install or yarn
  3. Run npm run build or yarn build
  4. Open clients/browser/index.html in your browser to access the Browser Client.

Web Developers

Most simple Web Application on top of the Nimiq Blockchain

A good way to get started is to have a look at the most simple web application on top of the Nimiq Blockchain.

Installation for Web Developers

Follow the Quickstart guide or use our CDN:

<script src="https://cdn.nimiq.com/core/nimiq.js"></script>

Run Client

Run Browser Client

Open clients/browser/index.html in your browser.

Run NodeJs client

To run a NodeJs Client you will need a publicly routable IP, Domain and SSL Certificate (get a free one at letsencrypt.org). Start the client by running clients/nodejs/index.js.

cd clients/nodejs/
node index.js --host <hostname> --port <port> --key <privkey> --cert <certificate>
Argument Description
host Hostname of the NodeJs client.
port Port used to communicate with the peers.
key Private key for the client
cert SSL certificate of your Domain.
wallet-seed Your wallet seed (optional)

Build your own Browser client

Just include <script src="dist/nimiq.js"></script> in your project.

API

Visit the API Documentation.

Core Developers

Developers are free to choose between npm and yarn for managing the dependencies.

Installation for Core Developers (using npm)

  • NodeJs latest version (> 7.9.0)

  • Dependencies: npm install

  • NodeJs dependencies:

     cd src/main/platform/nodejs/
     npm install
     cd clients/nodejs/
     npm install

Installation for Core Developers (using yarn)

  • NodeJs latest version (> 7.9.0)

  • Dependencies: yarn

  • NodeJs dependencies:

     cd src/main/platform/nodejs/
     yarn
     cd clients/nodejs/
     yarn

Test and Build

Run Testsuite

  • npm test or yarn test runs browser and NodeJS tests.
  • npm run test-browser or yarn test-browser runs the testsuite in your browser only.
  • npm run test-node or yarn test-node runs the testsuite in NodeJS only.

Run ESLint

npm run lint or yarn lint runs the ESLint javascript linter.

Build

Executing npm run build or yarn build concatenates all sources into dist/{web,web-babel,web-crypto,node}.js

Docker

A Dockerfile is provided which allows for creating your own backbone image using the following arguments.

Argument Description
BRANCH Defaults to master but can be any available git branch
PORT Defaults to TCP port 8080
DOMAIN Domain to be used for hosting the backbone node
KEY Path to an existing certificate key for the DOMAIN
CRT Path to an existing signed certificate for the DOMAIN
WALLET_SEED Pre-existing wallet private key

Building the Docker image using the above arguments

docker build \
  --build-arg DOMAIN=<DOMAIN> \
  --build-arg BRANCH=<BRANCH> \
  --build-arg WALLET_SEED=<WALLET_SEED> \
  --build-arg KEY=<KEY> \
  --build-arg CRT=<CRT> \
  --build-arg PORT=<PORT> \
  -t nimiq .

Running an instance of the image

docker run -d -p 8080:8080 -v /etc/letsencrypt/:/etc/letsencrypt/ --name "nimiq" nimiq

Note that you can override any of the arguments which were baked into the image at runtime with exception to the BRANCH. The -v flag here allows for mapping a local system path into the container for the purpose of using the existing DOMAIN certificates.

Check status

docker logs -f <instance_id_or_name>

Contribute

If you'd like to contribute to development Nimiq please follow our Code of Conduct and Contributing Guidelines.

License

This project is under the Apache License 2.0.

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.