FISCO BCOS 1.3 中文文档
区块链上的通信,计算和存储。节点入网后(加入联盟),成为区块链上的一 个共识单位。多个节点参与共识,确保了区块链上交易的一致。 节点文件目录、分类 FISCO-BCOS的节点包含了下列必要的文件。此处不列举节点在运行时生成的 文件。 node0 |-- genesis.json #创世块文件(创世块信息,god账号,创世节点) |-- config.json #节点总配置文件(IP,端口,共识算法) |-- 保存节点证书的序列号,在生成节点证书时自动生成。 A809F269BEE93DA4 日志文件 fisco-bcos.log 节点的启动日志。若节点无法启动时,查看此日志。 log文件夹 节点运行时打印出的日志,按照日志优先级,存放于此。 log/ |-- debug_log_2018081319.log |-- error_log_2018081319.log |-- fatal_log_2018081319 查看节点启动日志 说明:节点启动日志在节点每次启动时刷新,若节点无法启动,可查看此日 志。 操作: cat /mydata/node0/fisco-bcos.log 查看节点运行日志 说明:节点在运行时,在所在目录下的log文件夹里实时的打印一系列的日 志。根据日志等级的划分,可查看相应的日志输出。 操作: 查看目录下的日志 log |-- debug_log_2018081521.log |--0 码力 | 491 页 | 5.72 MB | 1 年前3百度超级链 XuperChain stable 中文文档
输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 XVM选用的是编译执行模式。 XVM编译加载流程 3.3.1. 字节码编译 用户通过c++编写智能合约,通过emcc编译器生成wasm字节码,xvm加载字节 码,生成加入了指令资源统计的代码以及一些运行时库符号查找的机制,最后 编译成本地指令来运行。 c++合约代码 1 int add(int a, int b) { 2 return a + b; 3 } 编译后的WASM文本表示 []int64{int64(argc), int64(argv)}) 13 fmt.Println(ret) 14 return err 15 } 转换后的c代码最终会编译成一个动态链接库来给XVM运行时来使用,在每个 生成的动态链接库里面都有如下初始化函数。 这个初始化函数会自动对wasm 里面的各个模块进行初始化,包括全局变量、内存、table、外部符号解析等。 1 typedef struct0 码力 | 325 页 | 26.31 MB | 1 年前3百度超级链 XuperChain 3.7 中文文档
输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 XVM选用的是编译执行模式。 XVM编译加载流程 3.3.1. 字节码编译 用户通过c++编写智能合约,通过emcc编译器生成wasm字节码,xvm加载字节 码,生成加入了指令资源统计的代码以及一些运行时库符号查找的机制,最后 编译成本地指令来运行。 c++合约代码 1 2 3 int add(int a, int b) { return a + b; } 编译后的WASM文本表示 []int64{int64(argc), int64(argv)}) fmt.Println(ret) return err } 转换后的c代码最终会编译成一个动态链接库来给XVM运行时来使用,在每个 生成的动态链接库里面都有如下初始化函数。 这个初始化函数会自动对wasm 里面的各个模块进行初始化,包括全局变量、内存、table、外部符号解析等。 1 2 3 4 5 6 7 80 码力 | 270 页 | 24.86 MB | 1 年前3百度超级链 XuperChain 3.12-a中文文档
等语言进行合约开发,我们以 golang 和 java 的 native 合约, c++ 的 wasm 合约以及 solidity 的 evm 合约为例展示 合约的基本操作。完整的语言-合约相容矩阵见 合约开发详解 开启运行时支持(可选) XuperChain 默认情况下只启用了 wasm 合约,如果想要尝试 evm 合约和 native 合约,需要修改 conf.xchain.yml 设置 native 和 evm 的 XuperChain 通过 XuperBridge 技术实现虚拟机和语言的解耦,从而支持不同 的合约开发语言和合约运行时。当前不同语言支持的合约情况为 语言 WASM evm native GO Y N Y C++ Y N N JAVA N N Y Solidity N N N 开启运行时支持 XuperChain 默认情况下只启用了 wasm 合约,如果需要在自己搭建的网络上 部署 evm 输入 表示在执行智能合约期间读取的数据源,即事务的输出来源。事务的输出表 示事务写入状态数据库的数据,这些数据在未来事务执行智能合约时将被引 用,如下图所示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供 智能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写 集和结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12-c 中文文档
等语言进行合约开发,我们以 golang 和 java 的 native 合约, c++ 的 wasm 合约以及 solidity 的 evm 合约为例展示 合约的基本操作。完整的语言-合约相容矩阵见 合约开发详解 开启运行时支持(可选) XuperChain 默认情况下只启用了 wasm 合约,如果想要尝试 evm 合约和 native 合约,需要修改 conf.xchain.yml 设置 native 和 evm 的 XuperChain 通过 XuperBridge 技术实现虚拟机和语言的解耦,从而支持不同 的合约开发语言和合约运行时。当前不同语言支持的合约情况为 语言 WASM evm native GO Y N Y C++ Y N N JAVA N N Y Solidity N N N 开启运行时支持 XuperChain 默认情况下只启用了 wasm 合约,如果需要在自己搭建的网络上 部署 evm 输入 表示在执行智能合约期间读取的数据源,即事务的输出来源。事务的输出表 示事务写入状态数据库的数据,这些数据在未来事务执行智能合约时将被引 用,如下图所示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供 智能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写 集和结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12 中文文档
等语言进行合约开发,我们以 golang 和 java 的 native 合约, c++ 的 wasm 合约以及 solidity 的 evm 合约为例展示 合约的基本操作。完整的语言-合约相容矩阵见 合约开发详解 开启运行时支持(可选) XuperChain 默认情况下只启用了 wasm 合约,如果想要尝试 evm 合约和 native 合约,需要修改 conf.xchain.yml 设置 native 和 evm 的 XuperChain 通过 XuperBridge 技术实现虚拟机和语言的解耦,从而支持不同 的合约开发语言和合约运行时。当前不同语言支持的合约情况为 语言 WASM evm native GO Y N Y C++ Y N N JAVA N N Y Solidity N N N 开启运行时支持 XuperChain 默认情况下只启用了 wasm 合约,如果需要在自己搭建的网络上 部署 evm 输入 表示在执行智能合约期间读取的数据源,即事务的输出来源。事务的输出表 示事务写入状态数据库的数据,这些数据在未来事务执行智能合约时将被引 用,如下图所示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供 智能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写 集和结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12-b 中文文档
等语言进行合约开发,我们以 golang 和 java 的 native 合约, c++ 的 wasm 合约以及 solidity 的 evm 合约为例展示 合约的基本操作。完整的语言-合约相容矩阵见 合约开发详解 开启运行时支持(可选) XuperChain 默认情况下只启用了 wasm 合约,如果想要尝试 evm 合约和 native 合约,需要修改 conf.xchain.yml 设置 native 和 evm 的 XuperChain 通过 XuperBridge 技术实现虚拟机和语言的解耦,从而支持不同 的合约开发语言和合约运行时。当前不同语言支持的合约情况为 语言 WASM evm native GO Y N Y C++ Y N N JAVA N N Y Solidity N N N 开启运行时支持 XuperChain 默认情况下只启用了 wasm 合约,如果需要在自己搭建的网络上 部署 evm 输入 表示在执行智能合约期间读取的数据源,即事务的输出来源。事务的输出表 示事务写入状态数据库的数据,这些数据在未来事务执行智能合约时将被引 用,如下图所示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供 智能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写 集和结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain latest 中文文档
输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 XVM选用的是编译执行模式。 XVM编译加载流程 3.3.1. 字节码编译 用户通过c++编写智能合约,通过emcc编译器生成wasm字节码,xvm加载字节 码,生成加入了指令资源统计的代码以及一些运行时库符号查找的机制,最后 编译成本地指令来运行。 c++合约代码 1 2 3 int add(int a, int b) { return a + b; } 编译后的WASM文本表示 []int64{int64(argc), int64(argv)}) fmt.Println(ret) return err } 转换后的c代码最终会编译成一个动态链接库来给XVM运行时来使用,在每个 生成的动态链接库里面都有如下初始化函数。 这个初始化函数会自动对wasm 里面的各个模块进行初始化,包括全局变量、内存、table、外部符号解析等。 1 2 3 4 50 码力 | 316 页 | 24.51 MB | 1 年前3百度超级链 XuperChain 3.9-e 中文文档
输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 XVM选用的是编译执行模式。 XVM编译加载流程 3.3.1. 字节码编译 用户通过c++编写智能合约,通过emcc编译器生成wasm字节码,xvm加载字节 码,生成加入了指令资源统计的代码以及一些运行时库符号查找的机制,最后 编译成本地指令来运行。 c++合约代码 1 2 3 int add(int a, int b) { return a + b; } 编译后的WASM文本表示 []int64{int64(argc), int64(argv)}) fmt.Println(ret) return err } 转换后的c代码最终会编译成一个动态链接库来给XVM运行时来使用,在每个 生成的动态链接库里面都有如下初始化函数。 这个初始化函数会自动对wasm 里面的各个模块进行初始化,包括全局变量、内存、table、外部符号解析等。 1 2 3 4 50 码力 | 317 页 | 27.80 MB | 1 年前3百度超级链 XuperChain master 中文文档
输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 XVM选用的是编译执行模式。 XVM编译加载流程 3.3.1. 字节码编译 用户通过c++编写智能合约,通过emcc编译器生成wasm字节码,xvm加载字节 码,生成加入了指令资源统计的代码以及一些运行时库符号查找的机制,最后 编译成本地指令来运行。 c++合约代码 1 2 3 int add(int a, int b) { return a + b; } 编译后的WASM文本表示 []int64{int64(argc), int64(argv)}) fmt.Println(ret) return err } 转换后的c代码最终会编译成一个动态链接库来给XVM运行时来使用,在每个 生成的动态链接库里面都有如下初始化函数。 这个初始化函数会自动对wasm 里面的各个模块进行初始化,包括全局变量、内存、table、外部符号解析等。 1 2 3 4 50 码力 | 316 页 | 24.51 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5