Enterprise-ready blockchain platform
Branch: master
Clone or download
andreyromancev Merge pull request #1366 from insolar/INS-1611-handle-error
INS-1611: Handle error in fetch object.
Latest commit b7e8ddb Feb 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update code owners. Jan 30, 2019
api NOISSUE: golangci fix Feb 22, 2019
application INS-1460: satisfy linter Feb 20, 2019
certificate get min role cert Feb 22, 2019
ci fix templates Feb 14, 2019
cmd Merge pull request #1318 from insolar/INS-1517-majority-rule-joiner Feb 22, 2019
component INS-1551: delete all *ln functions from logger Feb 20, 2019
configuration INS-1446: activate zerolog and json format by default Feb 20, 2019
consensus INS-1565: fix copy paste Feb 21, 2019
contractrequester Rename `log` variable to `logger` Feb 12, 2019
core
cryptography INS-1215: update license Jan 23, 2019
docker NOISSUE: all local compose stuff moved to scripts/ dir Jan 31, 2019
functest NOISSUE: change ErrNotFound from storage.errors to core.errors in sto… Feb 21, 2019
genesis NOISSUE: update index Feb 14, 2019
genesisdataprovider INS-1215: update license Jan 23, 2019
instrumentation INS-1270: send jaeger on pulse all the time and change spans Jan 30, 2019
keystore INS-1215: update license Jan 23, 2019
ledger INS-1611: Handle error in fetch object. Feb 22, 2019
log INS-1446: test timestamp and caller info Feb 20, 2019
logicrunner NOISSUE: add activate object check Feb 20, 2019
messagebus INS-1587: Split node storage in two components. Feb 21, 2019
metrics Merge branch 'master' of github.com:insolar/insolar into NOISSUE-gola… Feb 20, 2019
network fix tests Feb 22, 2019
networkcoordinator INS-1215: update license Jan 23, 2019
platformpolicy INS-1215: update license Jan 23, 2019
pulsar INS-1446: we should set output on correct logger to capture Feb 21, 2019
scripts Merge pull request #1318 from insolar/INS-1517-majority-rule-joiner Feb 22, 2019
testutils refactor Feb 22, 2019
utils INS-1529 add white spaces to comments Feb 19, 2019
version NOISSUE: fix golang ci Feb 20, 2019
.codecov.yml NOISSUE: ignore mock and stringer generated files Jan 29, 2019
.dockerignore add .dockerignore file to lower size of containers Feb 21, 2019
.editorconfig add .editorconfig that is understanble by many editors Feb 21, 2019
.gitignore
.golangci.yml NOISSUE: fix missing linter errors Feb 20, 2019
.goreleaser.yml INS-418: removed snapshot section Oct 3, 2018
.travis.yml NOISSUE: make functest in the end Jan 21, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Jul 6, 2018
Dockerfile fix Dockerfile Jan 17, 2019
Gopkg.lock INS-1446: zerolog adapter Feb 20, 2019
Gopkg.toml Update opencencus dependency to 0.19.0 Jan 31, 2019
LICENSE Updated year Jan 23, 2019
Makefile Merge pull request #1249 from insolar/INS-1439-record-gen Feb 11, 2019
README.md NOISSUE: add golangci badge Feb 20, 2019
devlib.sh DEVLIB: add check_same_pulse Jan 30, 2019
doc.go INS-1215: update license Jan 23, 2019
insolar_test.go INS-1215: update license Jan 23, 2019
versiontable.yml INS-667: Generated constant GO file from YAML Oct 19, 2018

README.md

Insolar

Enterprise-ready blockchain platform

CII Best Practices

Build Status GolangCI Go Report Card GoDoc codecov

Overview

Insolar is building a 4th generation blockchain platform for business aimed to enable seamless interactions between companies and unlock new growth opportunities. In addition to the blockchain platform, Insolar will provide blockchain services and ecosystem support for companies that are looking to develop and deploy blockchain solutions. Insolar will feature most complete and secure set of production-ready business blockchain tools and services to quickly build or launch blockchain enterprise applications, accelerating the progression path from initial proof-of-concept to full-scale production.

The world’s most innovative companies in finance, logistics, consumer goods, energy, healthcare, transportation, manufacturing and others will be turning to Insolar to create applications and networks that deliver tangible business success. They recognise that even in today’s digital economy, vast amounts of value continue to be trapped inside processes and organisations that don’t connect. Insolar is their remedy, helping them discover and design business value in blockchain networks — starting, accelerating and innovating strategies that replace longstanding business friction with trust and transparency. Delegating trust to a blockchain means that businesses can pursue broader networks, onboard new partners, and enter new ecosystems with ease. Blockchain-based networks that support multiparty collaboration around shared, trusted data and process automation across organisational boundaries bring benefits at many levels, starting with efficiency gains and culminating in reinventing how entire industry ecosystems operate.

Insolar is a global team of 60+ people in North America and Europe, including a 35-strong engineering team with practical blockchain engineering know-how, and 10 leading blockchain academics from major institutions (York University, ETH Zurich, Princeton).

Components

Network

Blockchain network layer.

  • Support of heterogeneous network topology.
  • Network routing with a host or host group becoming relays for others hosts.
  • Ability to limit number of gateways to corporate host group via relays to keep the host group secure.

See package readme for more details.

Ledger

Record storage engine backed by BadgerDB.

Virtual machines

Various engines for smart contract execution:

  • wasm - WebAssembly implementation of smart contracts

Application layer

Application module describes interaction of system components with each other. Every component of the system is a SmartContract. Members of the system are given the opportunity to build their own dApps by publishing smart contracts in Domain instances. Domains define the visibility scope for the child contracts and their interaction policies. Actually, Domain is subclass of SmartContract.

See package readme for more details.

Configuration

Provides configuration params for all Insolar components and helper for config resources management.

Metrics

Using Prometheus monitoring system and time series database for collecting and store metrics

Installation

Download Insolar package

go get github.com/insolar/insolar

Go to package directory

cd $GOPATH/src/github.com/insolar/insolar

Install dependencies and build binaries

make install-deps pre-build build

Example

Run launcher:

scripts/insolard/launchnet.sh -g

It will generate genesis data and launch a number of nodes. Default number is 5, you can uncomment more nodes in scripts/insolard/genesis.yaml.

After node processes are started you will see messages like “NODE 3 STARTED in background” in log and PulseWatcher will be started. When you see Ready in Insolar State you can run test scripts and benchmarks:

bin/apirequester -k=scripts/insolard/configs/root_member_keys.json -u=http://127.0.0.1:19101/api

This tool runs such scenario: it creates a number of users with wallets, then transfers some money between these users. First time script does it sequentially, second time — concurrently. Options:

  • -k: Path to root user keypair. All requests to create new user must be signed by root user.

  • -u: Node API URL. By default first node listens on 127.0.0.1:19101. It can be changed in config.

    bin/benchmark -c 2 -r 4 -k=scripts/insolard/configs/root_member_keys.json

Options:

  • -k: Same as above, path to root user keypair.
  • -c: Number of concurrent threads in which requests will be sent.
  • -r: Number of transfer requests that will be sent in each thread.

After testing you can stop all nodes by pressing Ctrl+C.

See apirequester and benchmark readme for more details

Contributing

See Contributing Guidelines.

License

This project is licensed under the terms of the Apache license 2.0, except for the Network, NetworkCoordinator and Consensus subdirectories, which are licensed under the terms of the BSD 3-Clause Clear License.