insolar

package module
v0.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2018 License: Apache-2.0 Imports: 0 Imported by: 0

README

Insolar

Enterprise-ready blockchain platform

CII Best Practices

Build Status 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

Kademlia DHT based 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

go get github.com/insolar/insolar

Generate default configuration file

go run cmd/insolar/* --cmd=default_config

Example

# Start node
./scripts/insolard/launch.sh

or

# Start net of nodes
./scripts/insolard/launchnet.sh


# In other terminal:

# Build insolar
make insolar

# Send request example
./bin/insolar -c=send_request --config=./scripts/insolard/configs/root_member_keys.json --root_as_caller --params=params.json
See insolar readme for more details.

Docker container

docker pull insolar/insolar
docker run -ti insolar/insolar

Contributing

See Contributing Guidelines.

License

This project is licensed under the terms of the Apache license 2.0. Please see LICENSE for more information.

Documentation

Overview

Package insolar is the next generation high-performance scalable blockchain platform designed with the express purpose to meet an immense business scope. The enterprise-grade distributed ledger cloud platform will help to increase business velocity, create new revenue streams, and reduce cost and risk by securely extending enterprise SaaS and on-premises applications to drive tamper-resistant transactions on a trusted business network.

Insolar supports public and private blockchains and is able to customize different blockchains for different applications.

Directories

Path Synopsis
api
application
cmd
Package configuration holds configuration for all components in Insolar host binary It allows also helps to manage config resources using Holder
Package configuration holds configuration for all components in Insolar host binary It allows also helps to manage config resources using Holder
consensus
Package core contains common definitions used by other modules.
Package core contains common definitions used by other modules.
delegationtoken
Package delegationtoken is about an authorization token that allows a node to perform actions it can not normally perform during this pulse
Package delegationtoken is about an authorization token that allows a node to perform actions it can not normally perform during this pulse
dns
message
Package message represents message that messagebus can route
Package message represents message that messagebus can route
reply
Package reply represents responses to messages of the messagebus
Package reply represents responses to messages of the messagebus
instrumentation
inslogger
Package inslogger contains context helpers for log
Package inslogger contains context helpers for log
insmetrics
Package insmetrics provides helpers for opencesus metrics.
Package insmetrics provides helpers for opencesus metrics.
instracer
Package instracer contains helpers for opencesus tracer.
Package instracer contains helpers for opencesus tracer.
pprof
Package pprof provides http pprof handlers
Package pprof provides http pprof handlers
Package ledger contains high level interfaces to storage engine and multiple record types
Package ledger contains high level interfaces to storage engine and multiple record types
artifactmanager
Package artifactmanager provides high-level storage API for logic runner module.
Package artifactmanager provides high-level storage API for logic runner module.
exporter
Package exporter contains methods of extracting data from DB.
Package exporter contains methods of extracting data from DB.
heavy
Package heavy contains methods for processing synchronization tasks on heavy node.
Package heavy contains methods for processing synchronization tasks on heavy node.
index
Package index represents indexes and meta information for records.
Package index represents indexes and meta information for records.
jetcoordinator
Package jetcoordinator is responsible for all jet manipulations.
Package jetcoordinator is responsible for all jet manipulations.
jetdrop
Package jetdrop represents Jet Drops (Blocks) of a blockchain.
Package jetdrop represents Jet Drops (Blocks) of a blockchain.
ledgertestutils
Package ledgertestutils contains high level API tests and test utils for other modules.
Package ledgertestutils contains high level API tests and test utils for other modules.
localstorage
Package localstorage provides methods for saving data on current machine.
Package localstorage provides methods for saving data on current machine.
pulsemanager
Package pulsemanager is responsible for all pulse operations.
Package pulsemanager is responsible for all pulse operations.
record
Package record contains code and types for storage records manipulation.
Package record contains code and types for storage records manipulation.
storage
Package storage contains ledger storage implementation on top of BadgerDB engine.
Package storage contains ledger storage implementation on top of BadgerDB engine.
storage/storagetest
Package storagetest contains high level API tests and test utils for other modules.
Package storagetest contains high level API tests and test utils for other modules.
Package log contains adapter for third-party loggers
Package log contains adapter for third-party loggers
Package logicrunner - infrastructure for executing smartcontracts
Package logicrunner - infrastructure for executing smartcontracts
builtin
Package builtin is implementation of builtin contracts engine
Package builtin is implementation of builtin contracts engine
goplugin
Package goplugin - golang plugin in docker runner
Package goplugin - golang plugin in docker runner
goplugin/foundation
Package foundation server implementation of smartcontract functions
Package foundation server implementation of smartcontract functions
Package messagebus routes messages (contract calls & responses) and delivers'em to relevant modules.
Package messagebus routes messages (contract calls & responses) and delivers'em to relevant modules.
Package metrics is a gateway for Prometheus monitoring system, it based on Prometheus golang client.
Package metrics is a gateway for Prometheus monitoring system, it based on Prometheus golang client.
transport
Package transport provides network transport interface.
Package transport provides network transport interface.
transport/connection
Package connection encapsulates connection creation process and provides connection factories.
Package connection encapsulates connection creation process and provides connection factories.
transport/host
Package host is a fundamental part of networking system.
Package host is a fundamental part of networking system.
transport/packet
Package packet provides network messaging protocol and serialization layer.
Package packet provides network messaging protocol and serialization layer.
transport/relay
Package relay is an implementation of relay mechanism.
Package relay is an implementation of relay mechanism.
transport/resolver
Package resolver provides interface (and default implementation) to retrieve public network address.
Package resolver provides interface (and default implementation) to retrieve public network address.
pulsartestutils
Package pulsartestutil - test utils for pulsar package
Package pulsartestutil - test utils for pulsar package
Package version provides project version information.
Package version provides project version information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL