 《深入浅出MFC》2/e的一本非常优秀的著作《深入浅出WINDOWS MFC 程序设计》,非常兴奋,自感受益匪 浅,觉得是一本难得的好书。 xviii 1 深入浅出MFC 二版五刷感言 我很开心地获知,深入浅出MFC 第二版即将进行第五刷。如果把第一版算进去,那就累积 印制9150 本了(不含简体版)。也就是说,这本书拥有几近一万人(次)的读者群(不含 简体版读者)。 对一本如此高阶又如此高价的技术书籍而言,诚不易也。我有许多感触! 3 这本书(第二版)所使用的开发环境是Visual C++ 5.0 & MFC 4.21。就在第五刷即将印行的 今天,Visual C++ 6.0 也已问世;其中的programming 关键,也就是MFC,在主干上没有什 么变化,因此我不打算为了Visual C++ 6.0 而改版。 在此新刷中,我继续修正了一些笔误,并加上新的读者来函。 未来,本书第三版,你会看到很大的变化。 侯俊杰台湾 iew::OnDraw 和 CDocument::Serialize,这是两个极端重要之虚拟函数。 Scribble Step2-修改使用者接口(第9章):这个版本变化了菜单,使程序多 了笔宽设定功能。由于菜单的变化,也带动了工具栏与状态列的变化。 从这个版本中我们可以学习如何使用资源编辑器,制作各式各样的程序资源。为了把 菜单命令处理函数放置在适当的类别之中,我们需要深入了解所谓的Message0 码力 | 1009 页 | 11.08 MB | 1 年前3 《深入浅出MFC》2/e的一本非常优秀的著作《深入浅出WINDOWS MFC 程序设计》,非常兴奋,自感受益匪 浅,觉得是一本难得的好书。 xviii 1 深入浅出MFC 二版五刷感言 我很开心地获知,深入浅出MFC 第二版即将进行第五刷。如果把第一版算进去,那就累积 印制9150 本了(不含简体版)。也就是说,这本书拥有几近一万人(次)的读者群(不含 简体版读者)。 对一本如此高阶又如此高价的技术书籍而言,诚不易也。我有许多感触! 3 这本书(第二版)所使用的开发环境是Visual C++ 5.0 & MFC 4.21。就在第五刷即将印行的 今天,Visual C++ 6.0 也已问世;其中的programming 关键,也就是MFC,在主干上没有什 么变化,因此我不打算为了Visual C++ 6.0 而改版。 在此新刷中,我继续修正了一些笔误,并加上新的读者来函。 未来,本书第三版,你会看到很大的变化。 侯俊杰台湾 iew::OnDraw 和 CDocument::Serialize,这是两个极端重要之虚拟函数。 Scribble Step2-修改使用者接口(第9章):这个版本变化了菜单,使程序多 了笔宽设定功能。由于菜单的变化,也带动了工具栏与状态列的变化。 从这个版本中我们可以学习如何使用资源编辑器,制作各式各样的程序资源。为了把 菜单命令处理函数放置在适当的类别之中,我们需要深入了解所谓的Message0 码力 | 1009 页 | 11.08 MB | 1 年前3
 FISCO BCOS 2.9.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3 FISCO BCOS 2.9.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 3.6.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3 FISCO BCOS 3.6.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 2.9.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3 FISCO BCOS 2.9.0 中文文档知节点1和节点2发起的P2P连接请求,并建 立连接,可使用CA黑名单避免这种情况。 • 若启用了白名单,需将退出节点的从所有节点的config.ini的白名单配置中删除,并正确的将新的 白名单配置刷入节点中。参考《CA黑白名单》。 A节点加入群组 场景描述: 群组Group3原有节点1和节点2,两节点轮流出块,现在将节点3加入群组。 操作顺序: 1. 节点3加入网络; 2. 使用控制 240 Chapter 10. 开发和使用智能合约 FISCO BCOS Documentation, 发布 v2.9.0 10.3.1 预备知识 并行互斥 两笔交易是否能被并行执行,依赖于这两笔交易是否存在互斥。互斥,是指两笔交易各自操作合约存储 变量的集合存在交集。 例如,在转账场景中,交易是用户间的转账操作。用transfer(X, Y) 表示从X用户转到Y用户的转账接口, 则互斥情况如下。 Y),X和Y都是互斥参数。 • 互斥对象:一笔交易中,根据互斥参数提取出来的、具体的互斥内容。例如转账的接口transfer(X, Y), 一笔调用此接口的交易中,具体的参数是transfer(A, B),则这笔操作的互斥对象是[A, B];另外 一笔交易,调用的参数是transfer(A, C),则这笔操作的互斥对象是[A, C]。 判断同一时刻两笔交易是否能并行执行,就是判断两笔交易的互斥对象是否有交集。相互之间交集为空0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 1.3 中文文档|-- verbose_log_2018081521.log `-- warn_log_2018081521.log 按日期和时刻查看日志 cat log_2018081521.log 查看实时刷出的日志 tail -f log_2018081521.log 控制台 控制台能以IPC的方式直接连接区块链节点进程。使用控制台,能直接查看到 区块链上的信息。若需要更直观更全面的区块链数据展现,请使用FISCO- maxBlockHeadGas 控制一个块允许最大Gas消耗上限 取值范围: 大于等于2000,000,000, 默认值: 2000,000,000 配置项 详细说明 maxTransactionGas 设置一笔交易允许消耗的最大gas 取值范围: 大于等于30,000,000, 默认值: 30,000,000 maxNonceCheckBlock 控制Nonce排重覆盖的块范围 取值范围: 大于等于1000 intervalBlockTime 2000 # =====允许空块落盘===== $ ./web3sdk ConfigAction set omitEmptyBlock false # ====调整一笔交易允许消耗的最大交易gas为40,000,000 $ ./web3sdk ConfigAction set maxTransactionGas 40000000 # ====调整一个块允许消耗的最大交易gas为30000 码力 | 491 页 | 5.72 MB | 1 年前3 FISCO BCOS 1.3 中文文档|-- verbose_log_2018081521.log `-- warn_log_2018081521.log 按日期和时刻查看日志 cat log_2018081521.log 查看实时刷出的日志 tail -f log_2018081521.log 控制台 控制台能以IPC的方式直接连接区块链节点进程。使用控制台,能直接查看到 区块链上的信息。若需要更直观更全面的区块链数据展现,请使用FISCO- maxBlockHeadGas 控制一个块允许最大Gas消耗上限 取值范围: 大于等于2000,000,000, 默认值: 2000,000,000 配置项 详细说明 maxTransactionGas 设置一笔交易允许消耗的最大gas 取值范围: 大于等于30,000,000, 默认值: 30,000,000 maxNonceCheckBlock 控制Nonce排重覆盖的块范围 取值范围: 大于等于1000 intervalBlockTime 2000 # =====允许空块落盘===== $ ./web3sdk ConfigAction set omitEmptyBlock false # ====调整一笔交易允许消耗的最大交易gas为40,000,000 $ ./web3sdk ConfigAction set maxTransactionGas 40000000 # ====调整一个块允许消耗的最大交易gas为30000 码力 | 491 页 | 5.72 MB | 1 年前3
 百度超级链 XuperChain 3.12-a中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3 百度超级链 XuperChain 3.12-a中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12-c 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3 百度超级链 XuperChain 3.12-c 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3 百度超级链 XuperChain 3.12 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12-b 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3 百度超级链 XuperChain 3.12-b 中文文档假定名为 addr_list),每个地址一行 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 # 从账号发起 xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ -- amount 100 -A addr_list # 快速创建合约方式: xchain-clii account new --account 1111111111111111 3. 部署实名合约 部署合约需要消耗资源,所以先给上述合约账户转移一笔资源,然后在合约 内部署上面的合约: 1 2 3 4 5 # 1 转移资源 xchain-clii transfer --to XC1111111111111111@xuper --amount 技术。 异步模式 以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是 指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所 示: 异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链 代码执行到跨链调用会发出一个事件,并且声明了回调函数。 由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成 功后, 中间件在触发回调函数调用Tx30 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain latest 中文文档addr_list),每个地址一行 1 2 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 1 2 3 4 # 从账号发起 ./xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 Step2:投票者(voter) 通过发起一个事务来 对提案投票,当达到系统约定的投票率并且账本达到合约的生效高度后,合约 就会自动被调用; Step3:为了防止机制被滥用,被投票的事务的需要冻结参 与者的一笔燃料,直到合约生效后解冻。 7.1. 共识可升级 图2:XuperChain提案机制进行共识升级 XuperChain提供可插拔共识机制,通过提案和投票机制,升级共识算法或者参 数。图2简要说明 内层共识的状态轮转。不同的外层共识可以有不同的实现。目前超级链已经实 现了DPoS+Hotstuff,具体的方案如下所示: 12. XPoS共识 12.1. 介绍 XPoS是超级链的一种改进型的DPoS算法,他是在一段预设的时间长度(一轮 区块生产周期)内选择若干个验证节点,同时将这样一轮区块生产周期分为N 个时间段, 这若干个候选节点按照约定的时间段协议协同挖矿的一种算法。 在选定验证节点集合后,XPoS通过Cha0 码力 | 316 页 | 24.51 MB | 1 年前3 百度超级链 XuperChain latest 中文文档addr_list),每个地址一行 1 2 YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z 假设要发起一笔转账操作 1 2 3 4 # 从账号发起 ./xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 Step2:投票者(voter) 通过发起一个事务来 对提案投票,当达到系统约定的投票率并且账本达到合约的生效高度后,合约 就会自动被调用; Step3:为了防止机制被滥用,被投票的事务的需要冻结参 与者的一笔燃料,直到合约生效后解冻。 7.1. 共识可升级 图2:XuperChain提案机制进行共识升级 XuperChain提供可插拔共识机制,通过提案和投票机制,升级共识算法或者参 数。图2简要说明 内层共识的状态轮转。不同的外层共识可以有不同的实现。目前超级链已经实 现了DPoS+Hotstuff,具体的方案如下所示: 12. XPoS共识 12.1. 介绍 XPoS是超级链的一种改进型的DPoS算法,他是在一段预设的时间长度(一轮 区块生产周期)内选择若干个验证节点,同时将这样一轮区块生产周期分为N 个时间段, 这若干个候选节点按照约定的时间段协议协同挖矿的一种算法。 在选定验证节点集合后,XPoS通过Cha0 码力 | 316 页 | 24.51 MB | 1 年前3
共 152 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16














