 百度超级链 XuperChain 3.7 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.7 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 270 页 | 24.86 MB | 1 年前3
 百度超级链 XuperChain 3.12-a中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.12-a中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 API 功能 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12-c 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.12-c 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 API 功能 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.12 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 API 功能 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain 3.12-b 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.12-b 中文文档ash至根节点的路 径,以下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": 假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的 底数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直 到能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且 SST的编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 API 功能 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 336 页 | 12.62 MB | 1 年前3
 百度超级链 XuperChain latest 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain latest 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 316 页 | 24.51 MB | 1 年前3
 百度超级链 XuperChain 3.9-e 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.9-e 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 317 页 | 27.80 MB | 1 年前3
 百度超级链 XuperChain master 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain master 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 316 页 | 24.51 MB | 1 年前3
 百度超级链 XuperChain 3.8 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain 3.8 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 2 3 4 { "proofPath": "[node7 hash],[node8 hash],[node4 hash]", "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 316 页 | 27.93 MB | 1 年前3
 百度超级链 XuperChain stable 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 { 2 "proofPath": "[node7 hash],[node8 hash],[node4 hash]", 3 "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr 百度超级链 XuperChain stable 中文文档假设本来是N块盘,扩容后是(N+M)块盘。对于已有的sst文件,因为取模的底 数变了, 可能会出现按照原有的取模散列不命中的情况。 规则是: 对于读Open,先按照 (N+M) 取模去Open,如果不存在,则遍历各盘直到 能Open到相应的文件,由于Open并不是频繁操作,代价可接受,且SST的 编号是唯一且递增的,所以不存在读取脏数据的问题; 对于写Open,就按照 (N+M) 取模,因为写Open一定是生成新的文件。 ash至根节点的路径,以 下图为例 假如我们需要验证node8的合法性,我们需要给出从node8计算出root的所有节 点,即node7、node8与node4,他们的相对顺序需要按照二叉树的中序遍历位 置给出,即我们需要如下构造输入参数 1 { 2 "proofPath": "[node7 hash],[node8 hash],[node4 hash]", 3 "txIndex": transfer_amount() 获取合约调用操作中 的转账数额 unique_ptr- new_iterator(string& start, string& limit) 获得遍历合约存储的 迭代器 call(module, contract, method, args … ) 调用其他合约 Golang接口详细可参见: core/contractsdk/go/code/context 0 码力 | 325 页 | 26.31 MB | 1 年前3
共 42 条
- 1
- 2
- 3
- 4
- 5














 
 