请选择 进入手机版 | 继续访问电脑版
查看: 1518|回复: 6

EOS_合约笔记_1

[复制链接]
发表于 2018-4-19 14:27:03 | 显示全部楼层 |阅读模式

马上注册,加入DAOONE项目!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 wslxxjsd 于 2018-5-15 16:22 编辑

完全搞懂是没指望了,放点东西上来。我这算不算是贡献啊?:)
说实在的,放论坛上有点不专业的样子。

1. 货币符号
/// eos with 8 digits of precision
#define EOS_SYMBOL_VALUE  (int64_t(4) | (uint64_t('E') << 8) | (uint64_t('O') << 16) | (uint64_t('S') << 24))
static const eosio::chain::symbol EOS_SYMBOL(EOS_SYMBOL_VALUE);
默认货币EOS,精度8;

2. WebAssembly 相关
1)
#define _REGISTER_INTRINSIC(R, CLS, INFO)\
   BOOST_PP_CAT(BOOST_PP_OVERLOAD(_REGISTER_INTRINSIC, _UNWRAP_SEQ INFO) _EXPAND_ARGS(CLS, "env", INFO), BOOST_PP_EMPTY())

#define REGISTER_INTRINSICS(CLS, MEMBERS)\
   BOOST_PP_SEQ_FOR_EACH(_REGISTER_INTRINSIC, CLS, _WRAPPED_SEQ(MEMBERS))

2)
REGISTER_INTRINSICS()宏
靠这玩意儿实现了contract api和wasm的映射;

3)虚拟机类型
目前有两种:binaryen(默认),wavm
const static eosio::chain::wasm_interface::vm_type default_wasm_runtime = eosio::chain::wasm_interface::vm_type::binaryen;
enum class vm_type {
            wavm,
            binaryen,
         };

Dawn 3.0现在默认使用Binaryen WebAssembly解释器,而不是更快的Just-in-Time(JIT)编译器。 这个决定会降低性能,但会增加稳定性和标准一致性,同时允许我们在需要时轻松交换更高性能的JIT环境。
nodeos --wasm-runtime选项设定

4)
eosio-abigen      abi
eosio-s2wasm    wast

5)
chain_controller构造_wasm_interface

6)关于 binaryen
1. 合约在binaryen中的执行
2. 最终调用externals\binaryen解释器相关接口;

2.png

7)关于 REGISTER_INTRINSICS
1. 执行 nm build/libraries/chain/CMakeFiles/eosio_chain.dir/wasm_interface.cpp.o | grep __binaryen_intrinsic_fn
共有213行;
2. wasm_interface.cpp中,INTRINSICS的方法总数也是213;
3. 对应了智能合约所有的api;
4. 此处只分析了binaryen;

2.png

太复杂,没更深入了....:(






我是Daooner,一起为DAOONE加油!
回复

使用道具 举报

发表于 2018-4-19 16:53:12 | 显示全部楼层
已加为精华
我是Daooner,一起为DAOONE加油!
回复 支持 反对

使用道具 举报

发表于 2018-4-26 11:08:22 来自手机 | 显示全部楼层
留个微信不,能不能加入我们daoone课程组
我是Daooner,一起为DAOONE加油!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-26 13:56:39 | 显示全部楼层
擒龙 发表于 2018-4-26 11:08
留个微信不,能不能加入我们daoone课程组

讲不来课呀~~~:(
我是Daooner,一起为DAOONE加油!
回复 支持 反对

使用道具 举报

发表于 2018-4-30 11:40:43 | 显示全部楼层
:lol:lol:lol学习
我是Daooner,一起为DAOONE加油!
回复

使用道具 举报

发表于 2018-10-18 09:04:46 | 显示全部楼层
顶起,我也在看源码
我是Daooner,一起为DAOONE加油!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表