致IOST社区:
IOST的愿景是为未来的全球网络服务商搭建基础架构。我们在构建高TPS的区块链基础设施,从而满足一个去中心化经济体对安全性和扩展性的需求。
IOST区块链是旨在支持大规模且切实可用的区块链技术的全球化项目,在真实环境下测试我们的产品至关重要。
因此,我们的开发团队很高兴地宣布IOST的测试网“Everest”0.5版本正式上线,这是我们向年底上线主网迈出的重要一步。
我们的测试网Everest使IOST区块链功能更加强大,更富有生命力,但也存在着很多需要进一步完善的地方。我们鼓励大家参与体验测试网,并为我们提出建议。
Terrance Wang
Chief Technology Officer, IOST
With Everyone on Developer Team
此次IOST 0.5版本测试网发布,我们达成了两个重要的成就:在真实环境中达到了7000-8000的峰值TPS;验证了PoB共识机制。
1. TPS:吞吐量测试结果
我们的内部测试在亚马逊EC2服务中部署了两个测试网络,分别使用了1700台从节点和900台从节点,每个节点的配置为1.73Ghz Xeon LC-3518处理器, 32 GB内存, 256 KiB L2 缓存。在EC2的实例中,我们使用9个处于亚洲、欧洲以及美洲的数据中心来模拟了不同情况的真实环境以及测试情景。
我们的测试网络在POB共识机制下,采用6个分片,达到了7000-8000的峰值TPS。
2. PoB已被验证并在运行中
我们独有的共识算法 - 可信度证明(Proof-of-Believability)在真实环境中正常运行。源代码可以在IOST GitHub项目的共识文件夹中查看。
PoB 的共识机制算法同时考量节点的贡献和账户余额,以此判定节点是否可信并当选验证者。IOSToken余额与验证交易数量,二者相结合决定节点对于网络的贡献。
传统的PoS共识机制最大的问题是中心化趋势。为了减少这个问题,节点在验证一个区块后,PoB系统将自动清除其之前的Servi余额。
Servi token具有不可交易,自毁和自行发放的特点。每个交易验证计为1个Servi token,每个IOST计为一个单位,相加为2的计数用于验证者选择。
此外,目前Everest 0.5 版本的测试网具备如下功能,可供开发者快速而便捷的在IOST区块链上进行开发。
Faucet,为用户提供测试币
钱包,用于存储和传输代币
可以运行 IOST 测试节点
区块浏览器,可以展示交易和区块信息
部署私有的 IOST 测试网络
智能合约,兼容字典式存储、跨合约 API 调用和多重签名
面向 API 的智能合约,方便快速开发和部署代码
Playground,方便在本地进行智能合约测试
Lucky Bet,一个已经运行在测试网上的小游戏
实时的指标监测和预警系统
已经在真实网络中部署多个节点,包括东京、伦敦、新加坡、孟买、法兰克福、首尔和蒙特利尔
针对下一阶段的开发,技术团队有如下规划:
在主网上线前我们还将发布至少2个测试网更新版本
会对测试网进行不断的测试和改进
智能合约的功能和安全性会进一步完善
IOST虚拟机优化
PoB将在更多样化的环境下运行
提高Node Lifecycle的稳定性
通过研究结合Layer 1和Layer 2解决扩展性
添加更多开发者documentation guidelines
我们的测试网上有一个简单的智能合约写成的IOST竞猜小游戏“Lucy Bet”。详细游戏细节和参与流程教学,请点击测试网Demo游戏开放——竞猜尾数赢IOST!(微信公众号IOST社区可阅读原文)
6月29日至7月1日,在测试网上线的前3天,每天游戏净收入排名最高的10个用户将得到真实IOST奖励,我们每天还将随机发给100个幸运观众参与奖。
如何反馈bug
IOST区块链还处于发展的早期阶段,我们希望看到大家运行甚至打破它,我们将奖励那些帮助我们发现系统bug的人。你可以直接通过发送邮件至team@iost.io 向我们反馈,也可以加入我们的Twitter、Reddit、Telegram和Discord社群。
我们鼓励大家都来参与使用我们的测试网。我们期待听到你的想法,并将继续改进IOST测试网。
01
使用 Faucet 申请测试代币
IOST Faucet 可以为用户提供测试代币,进而在测试网络上运行智能合约。用户无需开发者帮助即可在 Faucet 中重新申请测试网络的代币。获取测试币网址为:
https://explorer.iost.io/#/applyIOST
Faucet 可以为用户自动创建新的钱包地址。用户也可以为已有的钱包地址申请代币。你需要将收款钱包的地址填写完整,在进行安全检测后可以申请10个 IOST 代币。Faucet 会限制某一钱包地址一段时间内能获取的代币数。
请注意:不要在 IOST 测试网络中使用非测试环境的 IOST。
02
钱包,用于存储和传输代币
测试网钱包是用于在测试网上进行交易的客户端组件。它可用于“测试IOST”的存储和传输。该组件允许用户在自己的机器上,而非测试网络中保存私钥。用户使用测试网钱包时将用特定于VM的参数进行交易。
注意:这不是一个功能齐全的钱包。钱包具有用于执行交易的命令行界面。请使用faucet获取测试IOST,在运行智能合约时不要尝试使用真实的加密货币。
安装并运行钱包的方法:
获取IOST repository
在命令行运行:
输入-h获取可用命令的列表
03
运行IOST测试网节点
运行IOST测试网节点对所有开发者来说都很容易。
首先,确保Golang是1.10.1或更新版本,Redis是4.0.10或更新版本(推荐Redis稳定版本)。
更新系统之后,就可以从以下网址获取repository:
github.com/iost-official/prototype
最后,启动redis and iserver即可运行测试网节点。
> redis-server
> ./build/iserver --config iserver/iserver.yml
04
区块浏览器
IOST测试网的区块浏览器网址为:
https://explorer.iost.io
在区块浏览器中可以看到IOST区块链上的活动信息、交易记录和区块细节。IOST测试网充分支持智能合约部署,也就是说在浏览器上可以找到智能合约的源代码。
05
部署私有网络
在IOST区块链上您还可以部署一个私有的区块链网络。在设置好网络和docker配置之后,您可以创建IOST release的docker映像。之后就可以运行注册服务器,记得一定要将模式设置为“私有”才能部署私有网络。
docker run -d -p 30304:30304 --name iost_register \
-v $PROJECT/test/data/register:/workdir/data \
$DOCKER_IMAGE ./register --mode private
注册服务器正常运行之后,可以使用docker启动所需的IOST服务器数量。之后您就可以在自己的私有区块链网络的节点之间进行交易。
06
智能合约的高级功能
IOST测试网智能合约的高级功能包括:
可链上储存key-value对,支持Lua等vector类型
合约账户中的存储
跨合约 API 调用
多重签名
跨合约调用中的多语言支持
测试用智能合约playground
07
面向 API 的智能合约
IOST 智能合约是一个面向 API 的智能合约。声明的 API 可以轻松进行验证和运行时检查,也能让参数交流和验证变得很容易。一个简单的 IOST 智能合约的可能结构如下:
--- main
-- your own comments
-- @gas_limit 11
-- @gas_price 0.0001
-- @param_cnt 0
-- @return_cnt 1
function main()
Put("hello", "world")
return "success"
end--f
智能合约目前支持公有和私有模式。公有模式的智能合约可以被任何人调用,而私有合约只能被发布者进行跨合约调用。我们会在未来的版本中加入更多的权限管理功能。
08
智能合约的 Playground
我们致力于提高开发者的效率,帮助他们快速地产出基础设施和产品。为此,我们将重点放在构建一套工具以及可靠且快速的自动化基础设施上,以确保开发者能够把时间花在重要的事情上。IOST智能合约Playground是我们的开发者工具之一。您可以使用它在本地运行和测试智能合约,使用方法十分简单。
playground [-v init_values.yml] [source_code_1][source_code_2]...
源代码会被顺序编译并执行。你可以在Playground上尝试更多功能。
09
如何报告测试网络问题
如果您在使用过程中遇到任何问题,可以发送邮件到team@iost.io,也可以直接通过 GitHub 报告测试网络的任何问题。
有疑问加站长微信联系(非本文作者)