All Projects → vechain → Thor

vechain / Thor

Licence: lgpl-3.0
A general purpose blockchain highly compatible with Ethereum's ecosystem

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Thor

Blockchain In Js
Build your own blockchain!
Stars: ✭ 425 (-13.79%)
Mutual labels:  blockchain
Presto Ethereum
Presto Ethereum Connector -- SQL on Ethereum
Stars: ✭ 450 (-8.72%)
Mutual labels:  blockchain
Asch
Asch is an efficient, flexible, safe and decentralized application platform, which was initially designed to lower the barrier to entry for developers.The services provided by the Asch platform include a public chain and a set of application SDKs.
Stars: ✭ 484 (-1.83%)
Mutual labels:  blockchain
Smart Contract Best Practices
A guide to smart contract security best practices
Stars: ✭ 4,784 (+870.39%)
Mutual labels:  blockchain
Eattheblocks
Source code for Eat The Blocks, a screencast for Ethereum Dapp Developers
Stars: ✭ 431 (-12.58%)
Mutual labels:  blockchain
Huobi Chain
The next generation high performance public chain for financial infrastructure.
Stars: ✭ 460 (-6.69%)
Mutual labels:  blockchain
Eth Crypto
Cryptographic javascript-functions for ethereum and tutorials to use them with web3js and solidity
Stars: ✭ 420 (-14.81%)
Mutual labels:  blockchain
Exchangesharp
ExchangeSharp is a powerful, fast and easy to use .NET/C# API for interfacing with many crypto currency exchanges. REST and web sockets are supported.
Stars: ✭ 489 (-0.81%)
Mutual labels:  blockchain
Caliper
A blockchain benchmark framework to measure performance of multiple blockchain solutions https://wiki.hyperledger.org/display/caliper
Stars: ✭ 447 (-9.33%)
Mutual labels:  blockchain
Steem Js
Steem.js the official JavaScript library for Steem blockchain
Stars: ✭ 481 (-2.43%)
Mutual labels:  blockchain
Wiki
This repository is out of date, please check the new wiki:
Stars: ✭ 435 (-11.76%)
Mutual labels:  blockchain
Substrate
Substrate: The platform for blockchain innovators
Stars: ✭ 6,275 (+1172.82%)
Mutual labels:  blockchain
Awesome Ethereum
⚡️ Awesome Ethereum Resources
Stars: ✭ 459 (-6.9%)
Mutual labels:  blockchain
Blockchainstore
💰 Retail Store that runs on Ethereum
Stars: ✭ 425 (-13.79%)
Mutual labels:  blockchain
Aztec
Public repository for the AZTEC protocol
Stars: ✭ 483 (-2.03%)
Mutual labels:  blockchain
Plutus
The Plutus language implementation and tools
Stars: ✭ 418 (-15.21%)
Mutual labels:  blockchain
Scatterdesktop
Connect to applications on EOS, Ethereum, and Tron. Exchange tokens with ease. Manage your assets safely. All in a simple to use interface.
Stars: ✭ 459 (-6.9%)
Mutual labels:  blockchain
Cakeshop
An integrated development environment and SDK for Ethereum-like ledgers
Stars: ✭ 491 (-0.41%)
Mutual labels:  blockchain
Js Stellar Sdk
Main Stellar client library for the Javascript language
Stars: ✭ 488 (-1.01%)
Mutual labels:  blockchain
Simcoin
Blockchain simulation framework with Docker and Python.
Stars: ✭ 470 (-4.67%)
Mutual labels:  blockchain

VeChain Thor

A general purpose blockchain highly compatible with Ethereum's ecosystem.

This is the first implementation written in golang.

Go Go Report Card Travis License    TG

Table of contents

Installation

Requirements

Thor requires Go 1.13+ and C compiler to build. To install Go, follow this link.

Getting the source

Clone the Thor repo:

git clone https://github.com/vechain/thor.git
cd thor

Dependency management

Simply run:

make dep

If you keep getting network error, it is suggested to use Go Module Proxy. https://proxy.golang.org/ is one option.

Building

To build the main app thor, just run

make

or build the full suite:

make all

If no error reported, all built executable binaries will appear in folder bin.

Running Thor

Connect to VeChain's mainnet:

bin/thor --network main

Connect to VeChain's testnet:

bin/thor --network test

or startup a custom network

bin/thor --network <custom-net-genesis.json>

exmaple genesis config file can be found at genesis/example.json.

To find out usages of all command line options:

bin/thor -h
  • --network value the network to join (main|test) or path to genesis file
  • --data-dir value directory for block-chain databases
  • --cache value megabytes of ram allocated to internal caching (default: 2048)
  • --beneficiary value address for block rewards
  • --target-gas-limit value target block gas limit (adaptive if set to 0) (default: 0)
  • --api-addr value API service listening address (default: "localhost:8669")
  • --api-cors value comma separated list of domains from which to accept cross origin requests to API
  • --api-timeout value API request timeout value in milliseconds (default: 10000)
  • --api-call-gas-limit value limit contract call gas (default: 50000000)
  • --api-backtrace-limit value limit the distance between 'position' and best block for subscriptions APIs (default: 1000)
  • --verbosity value log verbosity (0-9) (default: 3)
  • --max-peers value maximum number of P2P network peers (P2P network disabled if set to 0) (default: 25)
  • --p2p-port value P2P network listening port (default: 11235)
  • --nat value port mapping mechanism (any|none|upnp|pmp|extip:) (default: "none")
  • --bootnode value comma separated list of bootnode IDs
  • --skip-logs skip writing event|transfer logs (/logs API will be disabled)
  • --pprof turn on go-pprof
  • --disable-pruner disable state pruner to keep all history
  • --help, -h show help
  • --version, -v print the version

Sub-commands

  • solo client runs in solo mode for test & dev
bin/thor solo --on-demand               # create new block when there is pending transaction
bin/thor solo --persist                 # save blockchain data to disk(default to memory)
bin/thor solo --persist --on-demand     # two options can work together
  • master-key master key management
# print the master address
bin/thor master-key

# export master key to keystore
bin/thor master-key --export > keystore.json


# import master key from keystore
cat keystore.json | bin/thor master-key --import

Docker

Docker is one quick way for running a vechain node:

docker run -d\
  -v {path-to-your-data-directory}/.org.vechain.thor:/root/.org.vechain.thor\
  -p 127.0.0.1:8669:8669 -p 11235:11235 -p 11235:11235/udp\
  --name thor-node vechain/thor --network test

Do not forget to add the --api-addr 0.0.0.0:8669 flag if you want other containers and/or hosts to have access to the RESTful API. Thorbinds to localhost by default and it will not accept requests outside the container itself without the flag.

The Dockerfile is designed to build the last release of the source code and will publish docker images to dockerhub by release, feel free to fork and build Dockerfile for your own purpose.

Explorers

Testnet faucet

API

Once thor started, online OpenAPI doc can be accessed in your browser. e.g. http://localhost:8669/ by default.

Thorest

Acknowledgement

A Special shout out to following projects:

Contributing

Thanks you so much for considering to help out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!

Please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base.

Forking Thor

When you "Fork" the project, GitHub will make a copy of the project that is entirely yours; it lives in your namespace, and you can push to it.

Getting ready for a pull request

Please check the following:

  • Code must be adhere to the official Go Formatting guidelines.
  • Get the branch up to date, by merging in any recent changes from the master branch.

Making the pull request

  • On the GitHub site, go to "Code". Then click the green "Compare and Review" button. Your branch is probably in the "Example Comparisons" list, so click on it. If not, select it for the "compare" branch.
  • Make sure you are comparing your new branch to master. It probably won't be, since the front page is the latest release branch, rather than master now. So click the base branch and change it to master.
  • Press Create Pull Request button.
  • Give a brief title.
  • Explain the major changes you are asking to be code reviewed. Often it is useful to open a second tab in your browser where you can look through the diff yourself to remind yourself of all the changes you have made.

License

VeChain Thor is licensed under the GNU Lesser General Public License v3.0, also included in LICENSE file in repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].