区块链学习5-长安链并发测试(3)_发送并发交易请求

这篇具有很好参考价值的文章主要介绍了区块链学习5-长安链并发测试(3)_发送并发交易请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇

区块链学习4-长安链并发测试(2)_部署链_fvafuc的博客-CSDN博客

三、准备合约

1. 编译cmc工具

参考官方文档:

https://docs.chainmaker.org.cn/quickstart/通过命令行体验链.html#cmc

cd chainmaker-go/tools/cmc
go build
# 复制链上认可的证书到cmc客户端:
cp -rf ../../build/crypto-config ../../tools/cmc/testdata/
# 查看帮助:
./cmc -h

2. 配置sdk_config.yml

修改cmc的sdk_config.yml,使其连接到指定的一个或多个节点:

vim ./testdata/sdk_config.yml

----------
nodes:
    - # 节点地址,格式为:IP:端口:连接数
      node_addr: "10.0.51.249:12301"
      # 节点连接数
      conn_cnt: 10
      # RPC连接是否启用双向TLS认证
      enable_tls: true
      # 信任证书池路径
      trust_root_paths:
        - "./testdata/crypto-config/wx-org1.chainmaker.org/ca"
      # TLS hostname
      tls_host_name: "chainmaker.org"

3. 使用cmc部署存证合约到链上

参考官方文档:

https://docs.chainmaker.org.cn/quickstart/通过命令行体验链.html#id14


长安链性能测试,从开源项目学习区块链,学习

 4. 测试合约能否被调用:​

四、并发调用

1. cmc的parallel功能进行并发调用存证合约

长安链性能测试,从开源项目学习区块链,学习

长安链性能测试,从开源项目学习区块链,学习

 2. 查看帮助:

 3. 一个批量调用合约示例和说明,:  

./cmc parallel invoke \ #调用合约
--loopNum=1000  \ #循环次数,类似于jmeter的loop count
--printTime=5 \ #日志打印时间间隔(s)
--threadNum=1950 \ #并发用户数,类似于jmeter的Number of thread
--timeout=1800 \ # 超时时间,类似于jmeter的请求超时设置
--sleepTime=100 \ # 每隔多长时间发送一次请求,单位是ms, 类似于jmeter的thread delay
--climbTime=1  \ # 爬坡度,即每隔多久启动线程,直至启动所有线程。类似于jmeter的stepping插件。
--use-tls=true \
--showKey=false \ # 是否打印输入的key值
--contract-name=fact \ #调用的合约名称
--method="save" \ # 调用合约的哪个方法
--pairs="" \
--hosts="10.0.51.249:12301" \ #连接哪台节点,可以是多台,用逗号隔开。
--pairs-file="./testdata/save.json" \ #具体的存证数据键值对,也可以使用上面的pairs参数,文件内容见下文。
--org-IDs="wx-org1.chainmaker.org" \ #以下参考官方的cmc说明。
--user-keys="./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.key" \
--user-crts="./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.crt" \
--output-result=false \ #是否打印返回结果,如果请求失败,可以设置成true定位问题。
--ca-path="./testdata/crypto-config/wx-org1.chainmaker.org/ca" \
--admin-sign-keys="./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.sign.key" \
--admin-sign-crts="./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.sign.crt"

下面附上jmeter的界面截图,以便理解

长安链性能测试,从开源项目学习区块链,学习

 长安链性能测试,从开源项目学习区块链,学习

4.调用存证合约,参数文件示例

在第三步测试调用合约时,存证数据为:
--params="{\"file_name\":\"name007\",\"file_hash\":\"ab3456df5799b87c77e7f88\",\"time\":\"6543234\"}" \

在批量调用时,使用以下的方式;

以"file_name\":\"name007\"为例, key=file_name, value=name007,

unique=true在调用时会自动为这个文件名添加值,使其不重复

上面用到的save.json文件内容例如:

[{"value": "6543234", "key": "time", "unique": false}, {"value": "ab3456df5799b87c77e7f88", "key": "file_hash","unique":true}, {"value": "name007", "key": "file_name","unique":true}]

以下是其中一笔交易的内容,unique=true使得cmc会自动为参数加上后缀:
长安链性能测试,从开源项目学习区块链,学习

5. 并发测试并监控tps

长安链性能测试,从开源项目学习区块链,学习

长安链性能测试,从开源项目学习区块链,学习文章来源地址https://www.toymoban.com/news/detail-787825.html

到了这里,关于区块链学习5-长安链并发测试(3)_发送并发交易请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链学习6-长安链部署:如何创建特定共识节点数和同步节点数的链

    正常prepare的时候只支持4 7 13 16个节点个数,想要创建10个节点,其中5个是共识节点,如何实现? 1. 注释掉prepare.sh的这几行: 2. 修改 crytogen的模板文件: 如果是cert模式:chainmaker-cryptogen/config/crypto_config_template.yml 如果是pk模式:chainmaker-cryptogen/config/pk_config_template.yml 例如在配

    2024年02月13日
    浏览(56)
  • php使用guzzle http发送并发接口请求

    在 PHP 中, Guzzle 是一个功能强大且流行的 HTTP 客户端,提供了方便的接口来发送 HTTP 请求并处理响应,本人非常喜欢这个包且重度依赖。 以下是使用 Guzzle 发送并发请求的基本示例: 

    2024年01月16日
    浏览(48)
  • 深度探讨 Golang 中并发发送 HTTP 请求的最佳技术

    💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在 Golang 领域,并发发送 HTTP 请求是优化 Web 应用程序的一项重要技能。本文探讨了实现此目的的各种方法

    2024年01月18日
    浏览(51)
  • golang发送get请求的各种操作:自定义header请求头、带cookie请求、channel并发请求

    请求参数放到url.Values{} 接收文件–ioutil.WriteFile 接收文件–io.Copy

    2024年02月06日
    浏览(47)
  • 使用 Vert.x 异步发送HTTP长阻塞请求来提高并发响应

    假设我们开发了一个必须与其他HTTP服务来交互的服务。不幸的是,这些HTTP服务速度慢且是阻塞的。 它可能是一个非常慢的遗留HTTP服务或我们必须使用的一些阻塞 API。无论如何,我们无法控制它。在这里,我们将调用两个HTTP API。其中一个将阻塞2秒钟,另一个将阻塞5秒钟。

    2024年02月03日
    浏览(65)
  • 长安链发布业内首个「生产可用」批量交易池

    长安链2.3.0_alpha版本已发布。本次版本对交易池、国密及共识算法等多部分进行了迭代。  业内首个生产可用的批量交易池   长安链Batch交易池是业内 首个生产可用的批量交易池。 区块中只需放入批次ID,实现对区块的极致剪裁;通过以批次为单位的交易并发处理机制,进一

    2024年02月02日
    浏览(54)
  • 长安链TBFT支持随机函数类交易删除的实现

    什么是随机函数类交易?简而言之就是交易每次执行的结果可能出现不一致,可能是不同的节点或者不同的时间,同一笔交易执行得到的结果具有随机性。例如现在有一个合约,合约的一个接口实现的是获取本地时间戳,然后存入到一个字段中。现在发起一笔交易,交易调用

    2024年01月17日
    浏览(35)
  • 对读取的Excel文件数据进行拆分并发请求发送到后端服务器

    首先,我们先回顾一下文件的读取操作: 本地读取Excel文件并进行数据压缩传递到服务器-CSDN博客 第一步:根据以上博客,我们将原先的handleFile方法,改为以下内容: 先对data数据进行打印,获取到一千多行的数据信息 那么如何对1000多条信息进行分组处理呢???  因为我

    2024年01月23日
    浏览(48)
  • Python向带有SSL/TSL认证服务器发送网络请求小实践(附并发http请求实现asyncio+aiohttp)

    最近工作中遇到这样的一个场景:给客户发送文件的时候,为保证整个过程中,文件不会被篡改,需要在发送文件之间, 对发送的文件进行签名, 而整个签名系统是另外一个团队做的, 提供了一个接口服务完成签名,但访问这个接口需要提供他们团队提供的证书链先进行认

    2024年04月16日
    浏览(45)
  • 性能测试----负载测试、压力测试、并发测试

    性能测试:检测一个软件的性能。 性能测试的指标: 响应时间:用户从请求到服务器响应的时间 吞吐量:单位时间内成功地传送数据的数量 并发数:在线并且在操作的用户数 负载测试:加负载,找到让系统崩溃的边界点。 压力测试:高负载的情况下跑,看系统稳定性。

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包