modulepackage
0.6.4-alpha.6
Repository: https://github.com/vntchain/go-vnt.git
Documentation: pkg.go.dev
# README
Hubble Network
VNT Chain的公链——Hubble Network是下一代商业级智能价值传递的基础设施,致力于解决当前公链高能耗、低效率,难以支撑大规模商业应用的问题。它借鉴了以太坊架构,融合DPOS与BFT技术以获取更高的性能和安全性,服务于规模化商业应用,实现价值的无摩擦转移。基于VNT Chain的公有链,用户可建立和发布下一代分布式智能应用,如游戏、金融资产交易、知识产权交易、电子签约、社交等。
特点
- 采用Vortex双层共识设计,可迅速验证交易及产生区块,高效节约。
- Vortex具有快速终局性,避免分叉。
- Vortex可容错1/3的见证人节点。
- 采用基于WASM的智能合约执行引擎——WAVM,支持多开发语言,降低开发者门槛。
- WAVM指令精简,可提高交易执行效率。
- WAVM基于沙箱运行,内存方面具有良好的安全性。
- WAVM是平台无关的,可运行在各种架构的CPU平台上,且性能等同于原生应用,具有良好的可移植性。
- WAVM采用模块化设计,可以针对特定功能实现模块化库的开发,提高代码利用率。
- 采用基于libp2p的P2P网络对已存在节点更加偏好,可以有效抵御恶意新节点的洪泛攻击。
- P2P网络具有灵活简单特性,可从任意节点发起查找,且查找算法对数收敛,能快速定位内容。
- P2P子协议框架具有稳定拓展特性,可以在其上任意扩展子协议处理,而底层框架无需做任何改动。
从源码安装Gvnt
安装gvnt
需要Go编译器(版本大于1.9)和C编译器。
首先,克隆仓库go-vnt
到路径$GOPATH/src/github.com/vntchain
,并进入项目目录:
mkdir -p $GOPATH/src/github.com/vntchain
cd $GOPATH/src/github.com/vntchain
git clone https://github.com/vntchain/go-vnt
cd go-vnt
如果有以前的版本,请更新到最新:
git pull
然后,使用下面命令编译gvnt
:
make gvnt
或者使用下面命令编译gvnt
和所有工具:
make all
经过以上可以在$GOPATH/src/github.com/vntchain/go-vnt/build/bin/
目录调用gvnt
,为方便使用可以将gvnt
安装到$GOPATH/bin
:
go install -v ./cmd/gvnt
查看当前使用的gvnt版本号
gvnt version
运行Gvnt
当前VNT的公链主网和测试网络都已经启动,资料参考:如何加入测试网, 如何加入主网
你可以在本地搭建一个小型测试网,资料请参考:如何搭建VNT网络。
资源
贡献源码
欢迎PR,感谢您为go-vnt
做的任何一点改进。您可以fork项目到个人仓库后、修复问题进行提交,然后向go-vnt
仓库发起PR。
贡献代码请遵循以下规则,方便go-vnt
核心开发人员对代码进行Review。
- 所有代码经gofmt进行格式化。
- PR请遵循以下规则:
- 标题格式:
[fixed/style/test] #Issue PR标题
,fixed/style/test
代表了修复/调整格式/修改测试,#Issue
为本PR相关的Issue编号,PR标题为一句简洁话,描述本次PR的目的。 - PR内容:描述本次PR具体的内容,希望能尽可能详细,这样能让Review本PR的开发人员了解你的意图。
- 标题格式:
许可证
所有go-vnt
仓库生成的二进制程序都采用GNU General Public License v3.0许可证, 具体请查看COPYING。
# Packages
Package accounts implements high level VNT account management.
simple nonconcurrent reference implementation for hashsize segment based Binary Merkle tree hash on arbitrary but fixed maximum chunksize
This implementation does not take advantage of any paralellisms and uses far more memory than necessary, but it is easy to see that it is correct.
No description provided by the author
Package common contains various helper functions.
Package consensus implements different VNT consensus engines.
No description provided by the author
No description provided by the author
Package core implements the VNT consensus protocol.
No description provided by the author
Package event deals with subscriptions to real-time events.
Package les implements the Light VNT Subprotocol.
Package light implements on-demand retrieval capable state and chain objects for the VNT Light Client.
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 gvnt contains the simplified mobile APIs to go-ethereum.
Package node sets up multi-protocol VNT nodes.
No description provided by the author
Package producer implements Hubble block creation and producing.
Package rlp implements the RLP serialization format.
Package rpc provides access to the exported methods of an object across a network
or other I/O connection.
No description provided by the author
No description provided by the author
Package tests implements execution of VNT JSON tests.
Package trie implements Merkle Patricia Tries.
Package vnt implements the VNT protocol.
Package vntclient provides a client for the VNT RPC API.
No description provided by the author
No description provided by the author
Package vntstats implements the network stats reporting service.
No description provided by the author
# 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 VNT 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 VM but not produced 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.