• Stars
    star
    829
  • Rank 55,018 (Top 2 %)
  • Language
    Go
  • License
    GNU Lesser Genera...
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Official Go implementation of the Ontology protocol. https://dev-docs.ont.io/#/

Ontology

Version 2.2.0(Bin) 1.13.0(Lib)

GoDoc Go Report Card Travis Discord

English | δΈ­ζ–‡

Welcome to the official Go implementation of the Ontology blockchain!

Ontology is a high-performance public blockchain project and distributed trust collaboration platform. It is highly customizable and suitable for all kinds of business requirements. The Ontology MainNet was launched on June 30th, 2018.

As a public blockchain project, Ontology is currently maintained by both the Ontology core tech team and community members who can all support you in development. There are many available tools for use for development - SDKs, the SmartX IDE, Ontology blockchain explorer and more.

New features are still being rapidly developed, therefore the master branch may be unstable. Stable versions can be found in the releases section.

Features

  • Scalable lightweight universal smart contracts
  • Scalable WASM contract support
  • Cross-chain interactive protocol
  • Multiple encryption algorithms supported
  • Highly optimized transaction processing speed
  • P2P link layer encryption (optional module)
  • Multiple consensus algorithms supported (VBFT/DBFT/RBFT/SBFT/PoW)
  • Quick block generation time (1-30 seconds)

Install from Binaries

You can download a stable compiled version of the Ontology node software by either:

  • Downloading the latest Ontology binary file with curl https://dev.ont.io/ontology_install | sh.
  • Downloading a specific version from the release section.

Build From Source

Prerequisites

  • Golang version 1.15 or later

Build

Note that the code in the master branch may not be stable.

$ git clone https://github.com/ontio/ontology.git
$ cd ontology
$ make all

After building the source code successfully, you should see two executable programs:

  • ontology: The primary Ontology node application and CLI.
  • tools/sigsvr: The Ontology Signature Server, sigsvr - an RPC server for signing transactions. Detailed documentation can be found here.

Run Ontology

The Ontology CLI can run nodes for the MainNet, TestNet and local PrivateNet. Check out the Ontology CLI user guide for a full list of commands.

MainNet Sync Node

You can run an Ontology MainNet node built from the source code with:

./ontology                          # Linux
./ontology-darwin-amd64             # MacOS
start ontology-windows-amd64.exe    # Windows

TestNet Sync Node

You can run an Ontology TestNet node built from the source code with:

./ontology --networkid 2                        # Linux
./ontology-darwin-amd64 --networkid 2           # MacOS
 start ontology-windows-amd64.exe --networkid 2 # Windows

Local PrivateNet

The Ontology CLI allows you to run a local PrivateNet on your computer. Before you can run the PrivateNet you will need to create a wallet file. A wallet file named wallet.dat can be generated by running

./ontology account add -d

To start the PrivateNet built from the source code with:

./ontology --testmode                       # Linux
./ontology-darwin-amd64 --testmode          # MacOS
start ontology-windows-amd64.exe --testmode # Windows

Here's an example of the directory structure

$ tree
└── ontology
    β”œβ”€β”€ ontology
    └── wallet.dat

Run with Docker

You can run the Ontology node software with Docker.

  1. Setup Docker-compose on your computer
  1. Make a Docker image
  • In the root directory of the source code, run make docker to make an Ontology image.
  1. Run the Ontology image
  • Run the command docker run ontio/ontology to start Ontology
  • Run the command docker run -ti ontio/ontology to start Ontology and allow interactive keyboard input
  • If you need to keep the data generated by the image, refer to Docker's data persistence function
  • You can add arguments to the Ontology command, such as with docker run ontio/ontology --networkid 2.

Examples

ONT transfer sample

-- from: transfer fromοΌ› -- to: transfer toοΌ› -- amount: ONT amountοΌ›

 ./ontology asset transfer  --from=ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48 --to=AaCe8nVkMRABnp5YgEjYZ9E5KYCxks2uce --amount=10

If the asset transfer is successful, the result will display as follows:

Transfer ONT
  From:ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48
  To:AaCe8nVkMRABnp5YgEjYZ9E5KYCxks2uce
  Amount:10
  TxHash:437bff5dee9a1894ad421d55b8c70a2b7f34c574de0225046531e32faa1f94ce

TxHash is the transfer transaction hash, and we can query a transfer result by the TxHash. Due to block time, the transfer transaction will not be executed before the block is generated and added.

If you want to transfer ONG, just add --asset=ong flag.

Note that ONT is an integer and has no decimals, whereas ONG has 9 decimals. For detailed info please read Everything you need to know about ONG.

./ontology asset transfer --from=ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48 --to=ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48 --amount=95.479777254 --asset=ong

If transfer of the asset succeeds, the result will display as follows:

Transfer ONG
  From:ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48
  To:AaCe8nVkMRABnp5YgEjYZ9E5KYCxks2uce
  Amount:95.479777254
  TxHash:e4245d83607e6644c360b6007045017b5c5d89d9f0f5a9c3b37801018f789cc3

Please note, when you use the address of an account, you can use the index or label of the account instead. Index is the sequence number of a particular account in the wallet. The index starts from 1, and the label is the unique alias of an account in the wallet.

./ontology asset transfer --from=1 --to=2 --amount=10

Query transfer status sample

./ontology info status <TxHash>

For Example:

./ontology info status 10dede8b57ce0b272b4d51ab282aaf0988a4005e980d25bd49685005cc76ba7f

Result:

Transaction:transfer success
From:AXkDGfr9thEqWmCKpTtQYaazJRwQzH48eC
To:AYiToLDT2yZuNs3PZieXcdTpyC5VWQmfaN
Amount:10

Query account balance sample

./ontology asset balance <address|index|label>

For Example:

./ontology asset balance ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48

or

./ontology asset balance 1

Result:

BalanceOf:ARVVxBPGySL56CvSSWfjRVVyZYpNZ7zp48
  ONT:989979697
  ONG:28165900

For further examples, please refer to the CLI User Guide.

Contributions

Contributors to Ontology are very welcome! Before beginning, please take a look at our contributing guidelines. You can open an issue by clicking here.

If you have any issues getting setup, open an issue or reach out in the Ontology Discord.

License

The Ontology source code is available under the LGPL-3.0 license.

More Repositories

1

documentation

Ontology Documents https://ont.io
JavaScript
126
star
2

OWallet

OWallet - a comprehensive Ontology desktop wallet
Vue
123
star
3

ontology-java-sdk

Comprehensive Java library for the Ontology blockchain.
Java
68
star
4

ontology-DID

Ontology decentralized identification protocol based on W3C DID specifications.
C#
66
star
5

ontology-ts-sdk

Comprehensive TypeScript library for the Ontology blockchain.
TypeScript
64
star
6

ontology-wasm

Expired , please use https://github.com/ontio/wagon
Go
51
star
7

ontology-crypto

Go
44
star
8

OEPs

Ontology Enhancement Proposal
Python
38
star
9

ontology-python-sdk

Comprehensive python library for the Ontology blockchain.
Python
35
star
10

ontology-oracle

The Oracle node and Oracle contract
Go
35
star
11

cyano-wallet

Cyano wallet - an Ontology wallet
TypeScript
26
star
12

ontology-go-sdk

SDK for Ontology
Go
24
star
13

ontology-smartcontract

tools, tutorials for ontology smart contact
C
22
star
14

ontology-ddxf

Distributed data eXchange Framework,which allows to build data marketplaces .
19
star
15

ontology-fpga

HTML
17
star
16

ontology-python-compiler

Python
16
star
17

ontology-dapi

A lightweight Javascript library for interacting with Ontology node and Ontology wallets
TypeScript
15
star
18

ONTO

ONTO is a comprehensive decentralized client product, which is an entrance of trust search engine and blockchain system.
14
star
19

ontology-wasm-cdt-rust

ontology wasm contract development kit
Rust
11
star
20

ontology-test

Light-weight test framework for ontology
Go
10
star
21

ontology-rosetta

Ontology Implementation of Rosetta Blockchain Standard
Go
10
star
22

ontology-wasm-cdt-cpp

C++
9
star
23

ontology-explorer

Ontology blockchain explorer
Vue
8
star
24

Anniversary

Dev Events for Ontology Main Net Anniversary
Go
5
star
25

neo-go-compiler

a golang compiler for neovm smart contract
Go
5
star
26

cross-chain

4
star
27

ontio-wasmjit

Rust
3
star
28

layer2

Go
2
star
29

ontio-wasm-build

Rust
2
star
30

mercury

Go
2
star
31

musl-mirror

mirror from git://git.musl-libc.org/musl
C
1
star
32

ontology-tool

Go
1
star
33

oracle-chainlink-smartcontract

Python
1
star