4

#夏日挑战赛#腾讯TBaaS平台体验区块链

 2 years ago
source link: https://blog.51cto.com/jzhdd/5502712
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

#夏日挑战赛#腾讯TBaaS平台体验区块链

原创

jzaliang 2022-07-22 00:06:36 博主文章分类:编程笔记 ©著作权

文章标签 区块链 tbaas 文章分类 其它 服务器 阅读数229

 本文正在参加星光计划3.0-夏日挑战赛

随着人们收入的增加,对债权、产权、版权的确认要求越来越高,谁让连银行大额存款都会不翼而飞呢?区块链正在努力解决这些问题,它是一种去中心化的协议,具有信息不可伪造,自动执行智能合约,无需审核等特点。尽管每人手里一套账本也许是无奈的选择。但谁能想到当初家家互联网线这种笨拙的办法能改变了我们生活,开创了现在这么发达的社会呢?也许虚拟世界正在大踏步的向我们走来。

TBaas区块链技术体验

  •  腾讯云区块链服务平台(TBaaS,Tencent Blockchain as a Service)依托腾讯云基础设施,为企业及开发者提供一站式、高安全性、简单易用的区块链服务。
  • 现在TBaas上可以部署 长安链·ChainMaker、Hyperledger Fabric、FISCO BCOS三种区块链,都属于联盟链的性质。现在腾讯云举办的长安链的体验活动,体验过程汇总于此。
  •  长安链· ChainMaker 是“长治久安、再创辉煌、链接世界”的意思。由北京微芯研究院、清华大学、北京航空航天大学、腾讯、百度和京东等知名高校、企业共同研发。

编写智能合约

  • 智能合约就是一组函数(功能 )和数据(状态 )的集合,并且它们是位于长安区块链的一个特定地址上的。
  •  Solidity是面向智能合约的高级编程语言,设计为以太虚拟机(EVM)上运行。
  • 安装环境 编写Solidity语言环境很多,我使用JavaScript项目中的npm命令来安装solcjs编译器。
    npm install -g solc
  • 编写合约代码:
      // SPDX-License-Identifier: MIT
      pragma solidity ^0.8.1;
      contract TestTbaas {
          string public name;
          constructor(string memory _name) {
              name = _name;
          }
          function set(string memory _name) public {
              name = _name;
          }
      }
    
  • 编译,根据TBaas官方要求,上传智能合约需要.bin与.abi格式文件,所以使用官方推荐的编译指令<br>
    solc --abi --bin --hashes --overwrite -o . testtbaas.sol
  • 登录微信云,进入 TBaas合约部署平台,点击合约管理->安装合约

  • 安装合约时按照提示安装即可,合约名称与编程的合约名称一致,下面的合约调用参数是为快速上链功能准备的。可以填写合约中的函数签名 ,而实现合约交易中的可视化上链。

    #夏日挑战赛#腾讯TBaaS平台体验区块链_区块链 tbaas
  • 审计合约,合约安装成功,如果没有恶意代码的话,审计日记可以看到审计通过日志。

    #夏日挑战赛#腾讯TBaaS平台体验区块链_区块链 tbaas_02
  • 区块链浏览器, 此时合约已经部署在区块链上了。可以在区块链浏览器中查看合约的一些基本信息。

    #夏日挑战赛#腾讯TBaaS平台体验区块链_区块链 tbaas_03
  • 快速上链, 在合约安装时下面填写的函数签名信息,可以在此体会合约交易的可视化上链。交易成功后可在区块链浏览器中查看交易信息。至此区块链部署完成。

    #夏日挑战赛#腾讯TBaaS平台体验区块链_区块链 tbaas_04
  • 交易信息, 在交易信息中可以看到合约的调用信息字节码。开始8个字节是函数签名的哈希值,后面是参数结构,第一个256位是类型,第二个256位是长度,后面是字符串参数的编码,

{"data":"
4ed3885e
0000000000000000000000000000000000000000000000000000000000000020
0000000000000000000000000000000000000000000000000000000000000008
6a7a616c69616e67000000000000000000000000000000000000000000000000
"}

API Explorer在线调试

  • 腾讯云平台为开放商提供了在线的交易接口的测试平台。可以方便的测试交易的接口描述,和返回值等信息。
  • 选择TBaas的长安链网络相关接口,ClusterId, ChainId可以在网络基本信息选择。
    #夏日挑战赛#腾讯TBaaS平台体验区块链_区块链 tbaas_05
  • 在🈶右边窗口点击在线请求中的发送请求,调用成功的话会返回信息。可以看到合约返回值是使用base64编码压缩的信息,而且不管读写,都会铸入区块链中。
{
  "Response": {
    "RequestId": "6750f87d-810b-4339-948e-44103fc26f0a",
    "Result": {
      "Code": 0,
      "CodeMessage": "",
      "GasUsed": 3993,
      "Message": "",
      "Result": "WyJjaGVubGlhbmciXQ==",
      "TxId": "819e9254a4a74e48a2e9609f036e430ce65d7cd4c33b44b897421cacebb583f2"
    }
  }
}
  • 还可以清晰看到真实的请求信息。点击查看文档可以看到相关接口描述。
curl 
-X POST https://tbaas.tencentcloudapi.com 
-H "Authorization: TC3-HMAC-SHA256 Credential=AKIDxaQJrqzs5Mr75mdiCdFKxSmpusomiKAMpSPBHeMekw9MYmbQbEwKi4XcKB01MyGt/2022-07-21/tbaas/tc3_request, SignedHeaders=content-type;host, Signature=551b1d83446c668d9a04756170900d7c64ffb3421ceb1da0c863e97186fccd14" -H "Content-Type: application/json" 
-H "Host: tbaas.tencentcloudapi.com" 
-H "X-TC-Action: QueryChainMakerDemoContract" 
-H "X-TC-Timestamp: 1658440532" 
-H "X-TC-Version: 2018-04-16" 
-H "X-TC-Region: ap-beijing" 
-H "X-TC-Language: zh-CN" 
-H "X-TC-Token: 5e9o7Ku2QN0APUnAN1fzdZghfI6wY2La78199182c31e53ec1eb72ae22217c970lU4yYyJw1iJU2hfwuPQStBNlr_7w2XRJd6mjhJ820Z0XncMkslt3j2mTb90QJwhUp6lyWLonBCKojWrDhvvU5dWL2eOaPq0dDtgMxKiVc07pYlBVVgg8mi_WCsOLjfK5Zmg1DpGMS0YuvAo-t_WeltSKZmf4EzbliX4_GgerHh98Ju_ziGqtjOuZf9ofZe6CKALeqxuzGfMGBTpqlg9I6A" 
-d '{"ClusterId":"chainmaker-demo","ChainId":"chain_demo","ContractName":"testTbaas","FuncName":"name"}'
  • 合约部署和合约交易都可以在线完成,界面人性化,操作简单方便,上链速度很快。
  • 合约审计功能可以防范恶意和有潜在安全危险的代码,但效果未知,只能做参考。
  • 区块浏览器可以方便查看合约。可能因为安全的原因不能查看合约代码,但可以查看msg的字节码。
  • API Explorer在线测试平台方便了开发者的调试。

结后语: 根据官方说明,还有在线代码生成、数据模拟、API诊断等功能,我还没有测试,等着你们去探索,开发一个基于长安链的DAPP将会更加轻松!

  • 收藏
  • 评论
  • 分享
  • 举报

上一篇:我的友情链接


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK