From 0bd4327c06a3a02d083bee381e420614d21e7ecb Mon Sep 17 00:00:00 2001 From: GitHubGuoChenHao <570663859@qq.com> Date: Thu, 14 May 2020 14:36:01 +0800 Subject: [PATCH] corss_query --- source/advanced_usage/cross_query.rst | 66 +++++++++++++++++++++++++ source/development_manuals/XuperRPC.rst | 2 +- source/index.rst | 1 + 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 source/advanced_usage/cross_query.rst diff --git a/source/advanced_usage/cross_query.rst b/source/advanced_usage/cross_query.rst new file mode 100644 index 00000000..0e8496d2 --- /dev/null +++ b/source/advanced_usage/cross_query.rst @@ -0,0 +1,66 @@ + +使用跨链查询功能 +================ + + +跨链查询的接口 +-------------- + +跨链查询的接口十分简单,只有cross_query + +.. code-block:: c++ + :linenos: + + class Context { + public: + virtual bool cross_query(const std::string& uri, + const std::map& args, + Response* response) = 0; + } + +在跨链查询之前,需要部署naming合约到链,合约代码为 core/contractsdk/cpp/example/naming +注意:这里部署naming合约名字固定为 crossQueryNaming + +正常部署后,按如下命令执行即可 + +注册外链的元信息 + +.. code-block:: bash + :linenos: + + ./xchain-cli wasm invoke crossQueryNaming --method RegisterChain -a '{"name":"test.xuper","type":"xuper","min_endorsor_num":"1"}' -H 127.0.0.1:37101 + +min_endorsor_num要求至少有几个人背书,如果背书节点个数都小于这个数目,那么验证的时候一定过不了背书策略的检查 + +注册信任的背书节点 + +.. code-block:: bash + :linenos: + + ./xchain-cli wasm invoke crossQueryNaming --method AddEndorsor -a '{"name":"test.xuper","address":"WwLgfAatHyKx2mCJruRaML4oVf7Chzp42", "host":"127.0.0.1:37101", "pub_key": "{\"Curvname\":\"P-256\",\"X\":59572894642662849351951007648381266067965665107900867144213709334891664628384,\"Y\":8048742862014975230056503560798576017872466904786606109303178975385452397337}"}' -H 127.0.0.1:37101 + +背书节点信息在 data/endorser/keys下,个人按照自己的进行修改 + + +目标链需要开启背书服务,位于代码目录下的 conf/xchain.yaml + +.. code-block:: bash + :linenos: + + # 是否开启默认的XEndorser背书服务 + enableXEndorser: true + +跨链查询的调用 +-------------- + +目标链部署counter合约 + +原链跨链查询的合约例子,代码位于 core/contractsdk/cpp/example/cross_query_demo + +正常部署后,按如下命令执行即可 + +.. code-block:: bash + :linenos: + + ./xchain-cli wasm invoke --method get cross + \ No newline at end of file diff --git a/source/development_manuals/XuperRPC.rst b/source/development_manuals/XuperRPC.rst index d6c96a32..8b52b840 100644 --- a/source/development_manuals/XuperRPC.rst +++ b/source/development_manuals/XuperRPC.rst @@ -126,7 +126,7 @@ address字段与GetBalance一样,tfds字段则多了是否冻结的内容,tf in := &pb.AddressBalanceStatus{ Header: global.Glogid(), Address: "dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN", - Tfds: []*pb.TokenFrozenDetails{bc}, + Tfds: []*pb.TokenFrozenDetails{tfd}, } out, _ := cli.GetBalanceDetail(context.Background(), in) diff --git a/source/index.rst b/source/index.rst index 1c424de1..b84ccd8b 100644 --- a/source/index.rst +++ b/source/index.rst @@ -62,6 +62,7 @@ XuperChain文档 advanced_usage/multi-disks.rst advanced_usage/parallel_chain.rst advanced_usage/subscribe.rst + advanced_usage/cross_query.rst .. toctree:: :maxdepth: 2