thor

module
v2.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2025 License: LGPL-3.0

README



Thor: The VeChainThor Client

Thor is the official Golang client for VeChainThor, the public blockchain powering the VeChain ecosystem. VeChainThor is designed for real-world adoption, enabling scalable, low-cost, and sustainable applications.

VeChainThor is currently up-to-date with the EVM's shanghai hardfork. Set evmVersion to shanghai if you are using Solidity compiler version 0.8.25 or above.

Hardware Requirements

Resource Validator Public Full Node
CPU 4 Core 8 Core
RAM 16 GB 64 GB
Bandwidth 20 Mbit 20 Mbit
Disk 500 GB NVMe SSD 1 TB SSD

Minimum of 45,000 IOPS required for an approximate 30 hour sync time.

Sync Time

Sync time from genesis to the latest mainnet block depends on hardware, configuration, and bandwidth. As at August 2025.

Validator
Build Sync Time AWS SKU
4 CPU, 32 GB, 10 Mbit, 937 NVMe SSD, 10K IOPS 54 Hours, 08 Minutes I4g.xlarge
2 CPU, 16 GB, 10 Mbit, 468 NVMe SSD, 35K IOPS 38 Hours, 41 Minutes I8g.large
4 CPU, 32 GB, 10 Mbit, 937 NVMe SSD, 45K IOPS 30 Hours, 00 Minutes I8g.xlarge

Note: The build used the --skip-logs command.

Public Full Node
Build Sync Time AWS SKU
8 CPU, 64 GB, 12 Mbit, 1875 NVMe SSD, 15K IOPS 59 Hours, 04 Minutes I4g.2xlarge
8 CPU, 64 GB, 12 Mbit, 1875 NVMe SSD, 42K IOPS 32 Hours, 17 Minutes I8g.2xlarge

Note: The build used the -disable-pruner command.

Installation

Use either the source or Docker instructions below to start a mainnet full node with the logs and pruner enabled. Becoming a validator requires additional steps, meeting the endorsement criteria and being voted in. See Becoming a Validator for more details.

For more configuration options, see Command Line Arguments, and for a full description of the nodes types, see Node Types.

Build and Run from Source
Prerequisites

Thor requires and a C compiler to build. Install them using your preferred package manager before continuing.

Commands

Clone the Thor repo:

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

Enter the Thor directory:

cd thor

Checkout the latest stable release:

git checkout $(git describe --tags `git rev-list --tags --max-count=1`)

Build Thor:

make

Run Thor:

bin/thor --network main

Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.

Build and Run with Docker
Docker CLI
docker run -d \
  -v <local-data-dir>/.org.vechain.thor:/home/thor/.org.vechain.thor \
  -p 127.0.0.1:8669:8669 \
  -p 11235:11235 \
  -p 11235:11235/udp \
  --name thor-node vechain/thor \
    --network main  \
    --api-addr 0.0.0.0:8669

Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.

Docker Compose

Use the provided docker-compose.yml to launch a node with the same configuration:

version: '3'

services:
  thor-node:
    image: vechain/thor
    container_name: thor-node
    command: --network main --api-addr 0.0.0.0:8669
    volumes:
      - thor-data:/home/thor
    ports:
      - "8669:8669"
      - "11235:11235"
      - "11235:11235/udp"

volumes:
  thor-data:

Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.

Documentation

Contributing

Contributions are welcome and appreciated!

Please review our Contribution Guidelines before submitting a PR.

Security

If you discover a security vulnerability, please report it according to our Security Policy.

Acknowledgements

Special thanks to the following projects:

License

VeChainThor is licensed under the GNU Lesser General Public License v3.0, also available in the LICENSE file in this repository.

Directories

Path Synopsis
api
doc
subscriptions
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
gen
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
Distributed under the GNU Lesser General Public License v3.0 software license, see the accompanying file LICENSE or <https://www.gnu.org/licenses/lgpl-3.0.html>
cmd
disco command
disco runs a bootstrap node for the Ethereum Discovery Protocol.
disco runs a bootstrap node for the Ethereum Discovery Protocol.
thor command
Package muxdb implements the storage layer for block-chain.
Package muxdb implements the storage layer for block-chain.
rpc
Package state manages the main accounts trie.
Package state manages the main accounts trie.
httpclient
Package httpclient provides an HTTP client to interact with the VeChainThor blockchain.
Package httpclient provides an HTTP client to interact with the VeChainThor blockchain.
wsclient
Package wsclient provides a WebSocket client for subscribing to various VeChainThor blockchain events.
Package wsclient provides a WebSocket client for subscribing to various VeChainThor blockchain events.
Package tracers is a manager for transaction tracing engines.
Package tracers is a manager for transaction tracing engines.
js
js/internal/tracers
Package tracers contains the actual JavaScript tracer assets.
Package tracers contains the actual JavaScript tracer assets.
Package trie implements Merkle Patricia Tries.
Package trie implements Merkle Patricia Tries.
Package vm implements the Ethereum Virtual Machine.
Package vm implements the Ethereum Virtual Machine.
Package vrf provides optimized Secp256k1Sha256Tai functions.
Package vrf provides optimized Secp256k1Sha256Tai functions.

Jump to

Keyboard shortcuts

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