Ansiblock

module
v0.0.0-...-d1fccd7 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2019 License: GPL-3.0

README

Ansiblock

Gitter chat CircleCI codecov

Ansiblock was designed to disrupt current limitations of blockchain technology. Ansiblock can achieve more than a million transactions per second without sharding.

What are we building?

Here are main features of Ansiblock:

  1. Performance and Scalability
    • Provide performance required for people running billions of devices and applications.
    • Provide low (less than 1 second) latency and finality for blockchain transactions.
    • Provide fast Ansiblock Consensus Algorithm based on Proof-of-Stake.
    • Prodive Decentralised Data Storage over blockchain for storing files and user data objects.
  2. Smart Contracts
    • Provide Smart Contract implementation supporting multiple Virtual Machines
    • Provide Smart Contract implementation supporting eBPF and WebAssembly Virtual Machines
    • Provide “Almost-Turing-Complete” Smart Contract implementation*
  3. Interoperability
    • Provide Protocols/API for inter-blockchain transactions.
    • Provide Protocols/API for inter-blockchain assets exchange operations.
  4. Privacy & Security
    • Provide “all-known-attack” resistant blockchain with secure Ansiblock Consensus Algorithm
    • Provide Private Layer for encrypting/decrypting user transactions and data.
  5. Portability
    • Provide node running under major desktop/server environments.
    • Provide wallets running on mobile devices.
    • Provide applications for IoT devices.
  6. Manageability
    • Provide tools for network monitoring and management.
    • Provide node version control and instant update functionality.
  7. Developer Oriented
    • Provide language independent Smart Contract development platform supporting C, C++, C#, Crystal, Java, Javascript, Objective-C, Python, Ruby, Rust, Scala, Swift languages.

Running Ansiblock Test Node

Install Go and clone the repo.

To run Ansiblock Producer node use:

cat starter.json | go run cmd/producer/producer.go

To run Ansiblock Signer node use:

cat starter.json | go run cmd/signer/signer.go "signer_name"

To run random user transactions use:

cat starter.json | go run cmd/user/user.go

To run unit tests use:

go test ./...

Ansiblock Architecture

Ansiblock Architecture

Ansiblock Consensus

Proof of Order

Ansiblock uses Proof-of-Order (PoO) for computational timestamping. Using VDFs Ansiblock can timestamp every event in the network and order them accordingly.

Proof of State

Proof-of-State (PoST) is cryptographic proof that blockchain is in specific state. State of the blockchain is a “snapshot” of Ansiblock network containing all client data, including accounts, smart contract and other data entities of the blockchain.

Proof of Relication

Using Proof-of-Replication (PoRep) Ansiblock is storing data in decenralized way. We are storing blocks as well as user files.

Proof of Stake

Ansiblock network is using Byzantine Fault Tolerant style (partially synchronous) Proof-of-Stake (POS) algorithm.

Contribution

Any contribution is welcome, we are grateful for smallest fixes. Please fork, code, commit and send a pull request, we will review and merge into Ansiblock codebase.

Our coding guidelines:

  • Use standard Go formating guidelines.
  • Use standard Go commenting guidelines.
  • If your complex commits please contact us on our gitter channel.

For more details check our Developers' Guide.

Also please review our code of conduct.

Directories

Path Synopsis
Package block implements generation and maintenance of the Verifiable Delayed Function Values Ansiblock will be using VDFs for computational timestamping.
Package block implements generation and maintenance of the Verifiable Delayed Function Values Ansiblock will be using VDFs for computational timestamping.
cmd
genesis command
genesis-demo command
mint-demo command
node command
producer command
signer command
user-node command
web-server command
Package user is responsible for user communication.
Package user is responsible for user communication.

Jump to

Keyboard shortcuts

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