Categorygithub.com/intfoundation/intchain
modulepackage
4.2.0+incompatible
Repository: https://github.com/intfoundation/intchain.git
Documentation: pkg.go.dev

# README

INT Chain

Go Report Card INTChain License Go Top Languages Languages Count INTChain Counter INTChain Size Go Version Last Commit

intchain

INT Chain is the world's first bottom up new-generation blockchain of things (BoT) communication standard and base application platform. The ecosystem is specifically designed for easy integration with any IoT protocol.

To both improve and encourage device interconnectivity, we have built an economy driven ecosystem by providing token-incentives through a decentralized TCP/IP based architecture of IoT. This new business model, molded by IoT devices, will support an entirely new ecosystem of the Internet of Things.

Install

Latest Version

The latest INT Chain version is v4.2.0

Install Go

Go 1.14+ is required for building and installing the INT Chain software.

Install Go by following the official docs.

Remember to set your $GOPATH, $GOBIN, and $PATH environment variables, for example:

mkdir -p $HOME/go/bin
echo "export GOPATH=$HOME/go" >> ~/.bashrc
echo "export GOBIN=$GOPATH/bin" >> ~/.bashrc
echo "export PATH=$PATH:$GOBIN" >> ~/.bashrc
source ~/.bashrc

Verify that Go has been installed successfully

go version

Install C compiler

You can install C compiler by your favourite package manager.

Install intchain

After setting up Go and C compiler correctly, you should be able to compile and run intchain.

Make sure that your server can access to google.com because our project depends on some libraries provided by google. (If you are not able to access google.com, you can also try to add a proxy: export GOPROXY=https://goproxy.io)

git clone --branch testnet https://github.com/intfoundation/intchain
cd intchain
make intchain

If your environment variables have set up correctly, you should not get any errors by running the above commands. Now check your intchain version.

intchain version

Running intchain

intchain is the entry point into the INT Chain network(main, test or private network). It can be used by other processes as a gateway into the INT Chain network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports.

We've enumerated a few common command to let you run your own intchain instance quickly. If you want to look over all command line options, please use intchain --help

Main network

The most common condition is that users want to simply interact with the INT Chain network: create accounts; transfer funds; deploy and interact with contracts.

intchain 

Then you can attach to an already running intchain instance with intchain attach, and you can invoke all official methods.

intchain attach <datadir>/intchain/intchain.ipc

Test network

For developers, you would like to deploy contracts for testing, but you do not want to do that with real money spending. In other words, instead of attaching to the main network, you want to join the test network with your node, which is fully equivalent to the main network.

intchain --testnet

Specifying the --testnet flag, will reconfigure intchain instance a bit:

  • Instead of using the default data directory(~/.intchain/intchain on Linux for example), intchain will use testnet (~/.intchain/testnet on Linux). This means that attaching to a running testnet node requires the use of a custom endpoint(intchain attach <datadir>/testnet/intchain.ipc).
  • The client will connect to the test network, which uses different bootnodes, different network IDs and genesis file.

Resources

Contribution

See the contribution

License

License

# Packages

Package accounts implements high level INT Chain account management.
No description provided by the author
Package common contains various helper functions.
No description provided by the author
Package consensus implements different INT Chain consensus engines.
No description provided by the author
No description provided by the author
Package core implements the Ethereum consensus protocol.
No description provided by the author
Package event deals with subscriptions to real-time events.
No description provided by the author
Package intclient provides a client for the INT Chain RPC API.
Package intdb defines the interfaces for an INT Chain data store.
Package intprotocol implements the Ethereum protocol.
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Go port of Coda Hale's Metrics library <https://github.com/rcrowley/go-metrics> Coda Hale's original work: <https://github.com/codahale/metrics>.
Package miner implements INT Chain block creation and mining.
Package node sets up multi-protocol Ethereum nodes.
Package p2p implements the INT Chain p2p network protocols.
No description provided by the author
Package rlp implements the RLP serialization format.
Package rpc implements bi-directional JSON-RPC 2.0 on multiple transports.
Package tests implements execution of INT Chain JSON tests.
Package trie implements Merkle Patricia Tries.

# Variables

NotFound is returned by API methods if the requested item does not exist.

# Structs

CallMsg contains parameters for contract calls.
FilterQuery contains options for contract log filtering.
SyncProgress gives progress indications when the node is synchronising with the Ethereum network.

# Interfaces

ChainReader provides access to the blockchain.
ChainStateReader wraps access to the state trie of the canonical blockchain.
ChainSyncReader wraps access to the node's current sync status.
A ContractCaller provides contract calls, essentially transactions that are executed by the EVM but not mined into the blockchain.
GasEstimator wraps EstimateGas, which tries to estimate the gas needed to execute a specific transaction based on the pending state.
GasPricer wraps the gas price oracle, which monitors the blockchain to determine the optimal gas price given current fee market conditions.
LogFilterer provides access to contract log events using a one-off query or continuous event subscription.
PendingContractCaller can be used to perform calls against the pending state.
A PendingStateEventer provides access to real time notifications about changes to the pending state.
A PendingStateReader provides access to the pending state, which is the result of all known executable transactions which have not yet been included in the blockchain.
Subscription represents an event subscription where events are delivered on a data channel.
TransactionReader provides access to past transactions and their receipts.
TransactionSender wraps transaction sending.