EOS智能合约介绍
目录
• 所需的背景知识
• 技术限制
• EOS测试环境搭建
1.所需的背景知识
1.1 C/C++编程经验
基于EOS.IO的区块链使用Web Assembly (WASM)执行用户生成的应用程序和代码。WASM是一项新兴的网络标准,得到了谷歌,微软,苹果等公司的广泛支持。目前,用于构建编译为 WASM的应用程序的最成熟工具链是使用C / C++编译器的clang / llvm。
第三方开发的其他工具链包括:Rust, Python和Solidity。虽然这些其他语言看起来可能更简单,但它们的性能可能会影响您可以构建的应用程序的规模。EOS官方预计C++将成为开发高性能和安全智能合约的最佳语言。
1.2 Linux/MacOS
• Ubuntu 16.10或更高版本
• MacOS Sierra 或以上
1.3命令行知识
有与EOS.IO —起提供的各种工具,要求具有基本的命令行知识才能与之交互。
2.技术限制
2.1没有浮点
合约不会接受浮点运算,因为它是CPU级别的非确定性行为,可能会导致意外分支。
2.2事务在1 ms内执行
事务的执行时间需要小于或等于1毫秒,否则事务将失败。
2.3 最大30 TPS
目前,公共测试网络的设置方式是每个帐户每秒最多发布30笔交易。
3. EOS测试环境搭建
3.1获取代码
$ git clone https://github.com/EOSIO/eos.git -b DAWN-2018-02-14 --recursive
该指令有两个地方需要重点关注一下,首先是下载的版本应该是DAWN-2018-02-14版本,否则连接上测试网络后无法完全同步区块;另一个要注意的地方是要加入--recursive参数,否则EOS关联的子项目没法下载。如果命令没有加入参数,可以使用下面的命令来更新子项目。
$ git submodule update --init --recursive
3.2编译
• Ubantu
$cd eos
$ ./build.sh ubuntu full
• MacOS
如果你的Mac系统超过MacOS 10.12版本,那么编译时需要注意boost库的版本,不能高于1.65。这个在编译时不会提示,因为Mac下的包管理工具brew不支持特定版本的包下载。可以使用该地址boost1.65下载到本地,然后手工解压并复制到/usr/local/Cellar/boost。
编译使用以下命令:
$ ./build.sh darwin full
最后一步
需要进入build目录然后执行以下命令:
$ cd build
$ make install
该命令会将编译好的可执行文件、头文件、库文件和模板文件安装到build下的instgall目录下,在该目录的bin下有所有编译好的命令,包括eosd、eosc、eoscpp等等。