网站建设价格方案网站程序 wordpress 织梦 discuz

news/2025/10/5 22:54:01/文章来源:
网站建设价格方案,网站程序 wordpress 织梦 discuz,一般设计网站页面用什么软件,云南建设厅建筑业管理网站公证服务信息您是否需要高吞吐量的Corda网络#xff1f; 网络的吞吐量是否稳定#xff1f; 您是否已经从其他领域挤出了所有可能的表现#xff1f; 如果您对这些问题的回答是“是”#xff0c;那么我可能会为您提供一些有用的信息。 我列出了这些问题#xff0c;以减少您过… 公证服务信息 您是否需要高吞吐量的Corda网络 网络的吞吐量是否稳定 您是否已经从其他领域挤出了所有可能的表现 如果您对这些问题的回答是“是”那么我可能会为您提供一些有用的信息。 我列出了这些问题以减少您过早优化Corda网络/应用程序的机会。 如果它是处理请求/事务中最慢的部分之一则切换到使用多个公证人只会对性能产生显着影响。 在考虑使用多个公证人之前很可能需要改进其他方面。 在我继续之前。 我真的需要这么说。 在本文中我并不是在谈论使用公证集群该公证集群由相互沟通以就是否使用过国家达成共识的公证人组成。 我说的是有多个公证人每个公证人都有自己的身份这些公证人仅与向其发送交易以进行验证的节点进行交互。 这种区别必须加以区分并且应该消除对我将在本文中准确描述的任何混淆。 在撰写本文时Corda的当前版本为 开源3.3 企业3.2 我为什么要这样做 好吧 让我们真正深入探讨为什么要使用多个公证人。 图表最能做到这一点所以让我们使用一个 具有一个公证人的网络的简单视图 这种情况看起来不太好。 但是实际上可能并不那么糟糕。 如果网络的吞吐量不是很高则此体系结构应该能够处理通过公证人的事务。 如引言中所述。 当发送到公证人的交易率变得很高时这成为一个问题。 一旦达到这一点公证人将开始落后。 因为它不能足够快地验证事务中的状态。 如果性能对网络很重要那么这是检查的好地方。 从代码角度来看这是您可能已经在编写CorDapps的标准格式。 您可以根据特定条件选择公证人然后在其中发送交易。 您所处理的整个网络中甚至可能只有一个公证人。 例如在编写类似于以下代码的代码之前在我编写的所有代码示例中它们仅依赖于网络中的单个公证人每次都盲目地使用那个。 private fun notary(): Party serviceHub.networkMapCache.notaryIdentities.first()切换到多个公证人 从依赖一个公证人的网络过渡到一个由许多公证人组成的设计从根本上讲需要两件事 网络中有多个公证人。 一种选择向哪个公证人发送交易的算法。 此外如果使用状态则将来的交易会参考为交易选择的公证人。 如果最终遇到消耗了来自不同公证人的输入状态的情况则必须执行公证人变更事务。 稍后我将讨论这个主题。 下面是如何将先前的设计更改为使用一些公证人的方法 具有多个公证人的网络的简化视图 关于此图的最好之处在于它说明了向网络添加另一个公证人并在其中重新分配负载是多么简单。 没有什么可以阻止我们向网络中添加越来越多的公证人。 但是在某些情况下添加更多内容不会导致性能提高。 这一直回到我之前提到的内容。 添加更多的公证人只会在公证人本身达到饱和时增加吞吐量。 为发行交易选择公证人 以下是选择使用哪种公证人的可能算法 private fun transaction(): TransactionBuilder TransactionBuilder(notary()).apply {addOutputState(message, MessageContract.CONTRACT_ID)addCommand(Send(), message.participants.map(Party::owningKey))}private fun notary(): Party {val index message.type.hashCode() % serviceHub.networkMapCache.notaryIdentities.sizereturn serviceHub.networkMapCache.notaryIdentities.single { it.name.organisation Notary-$index } } 在此示例中事务根据输入状态的属性之一的hashCode和网络中的公证人数来选择要使用的公证人。 选择公证人的方式可以根据需要简单或复杂。 这将取决于要求例如对于提议的交易仅信任一部分公证人或者对网络变化中的公证人具有弹性。 从同一公证人消费状态时选择公证人 这是很好而且很简单的…如果所有输入状态都引用同一个公证人。 下面是它的外观此示例仅使用一个输入…因为我懒于编写另一个版本 private fun transaction(response: MessageState): TransactionBuilder TransactionBuilder(notary()).apply {addInputState(message)addOutputState(response, MessageContract.CONTRACT_ID)addCommand(Reply(), response.participants.map(Party::owningKey))}private fun notary(): Party message.state.notary 如您所见所有事务要做的就是检索与输入状态相关的公证人并将其用于自身。 可以提取此信息因为message是StateAndRef 访问其state属性将返回TransactionState 。 遵循这种格式。 创建消耗状态并产生大量输出的新事务非常简单。 此格式对于多个输入状态也有效。 当且仅当它们都引用同一个公证人。 因此……讨论所有带有不同公证人的输入状态。 我可能应该进一步讨论。 消费来自不同公证人的状态时选择公证人 在这里我们必须要小心否则我们将看到类似以下错误 java.lang.IllegalArgumentException: Input state requires notary ONotary-1, LLondon, CGB which does not match the transaction notary ONotary-0, LLondon, CGB. 该错误表明输入状态与包含它的事务没有相同的公证人。 要解决此错误我们需要使用公证更改交易。 根据文档 “用于更改州公证人的流程。 这是必需的因为事务的所有输入状态必须指向同一公证人。” 我想把它放在那里以防万一你以为我是个骗子 执行公证变更交易的代码如下所示 Suspendable private fun notaryChange(message: StateAndRefMessageState,notary: Party ): StateAndRefMessageState if (message.state.notary ! notary) {subFlow(NotaryChangeFlow(message,notary))} else {message} 我相信您可以弄清楚自己的状况但是要使自己变得更加聪明……我将告诉您。 message表示输入状态 notary是新交易将使用的公证人。 如果公证人相同则可以返回状态因为无需对其进行任何操作。 如果它们确实不同则调用NotaryChangeFlow 它接受传递给原始函数的两个参数。 这将返回一个新的StateAndRef 然后从函数中返回它。 然后可以将从此函数返回的StateAndRef放入事务中。 如果您不确定传递到事务中的状态是否来自同一公证人那么建议您坚持使用本节中的代码。 选择事务将使用的公证人无论是特定的还是从输入状态中获取的公证人然后对任何需要进行公证的事务执行公证变更事务。 例如我认为类似于下面的代码将提供一个通用且健壮的解决方案 Suspendable private fun transaction(): TransactionBuilder {val messages getMessageStates()val notary notary()return TransactionBuilder(notary).apply {messages.forEach {addInputState(notaryChange(it, notary))}addCommand(Delete(),(messages.flatMap { it.state.data.participants }.toSet() ourIdentity).map(Party::owningKey))} }Suspendable private fun notaryChange(message: StateAndRefMessageState,notary: Party ): StateAndRefMessageState if (message.state.notary ! notary) {subFlow(NotaryChangeFlow(message,notary))} else {message}// however you want to choose your specific Notary private fun notary(): Party serviceHub.networkMapCache.notaryIdentities.single { it.name.organisation Notary-1 } 在这里为交易选择了一个特定的公证人如果需要每个输入的公证人都将更改为所选公证人并且签名者包括消费状态的所有参与者。 这可能不适合您自己的用例。 很好。 但是这在为不断变化的公证人服务时主要是为了提高性能应该是一个很好的起点。 稍稍更改此解决方案我们可以改为根据输入状态参考的“公证人”来选择“公证人”。 由于只有notary功能确实需要更改因此我从示例中排除了其余代码。 private fun notary(messages: ListStateAndRefMessageState): Party messages.map { it.state.notary }.groupingBy { it }.eachCount().maxBy { (_, size) - size }?.key ?: throw IllegalStateException(No Notary found) 此功能选择的公证人是根据输入状态共享的最常见的公证人来决定的。 这样一来所需的公证变更交易就更少了因为大多数输入已经引用了所选公证。 如果您不知道输入引用的是哪个公证人这应该提供最佳性能。 结论 在Corda网络中实现高性能取决于消除系统中的瓶颈和其他常规性能调整。 公证人就是这样一个瓶颈。 在非常高的吞吐量通过公证人的情况下网络的性能将开始达到平稳状态。 公证人不能以传入的速率足够快地处理请求。移动使用共享请求负载的多个公证人将提高网络的性能。 这在确定使用哪个公证人时带来了额外的复杂性并可能需要公证人变更事务。 但是如果您的网络确实需要实现高吞吐量。 这将是一个值得研究的领域。 我将在这里发表最后的评论。 随着公证人内部性能的提高对这种体系结构的需求将减少。 甚至可能达到这样一个程度即一个公证人能够完全处理大量传入请求。 随着Corda不断提高其整体性能这是一个值得关注的领域。 这篇文章中使用的代码可以在我的GitHub上找到 。 翻译自: https://www.javacodegeeks.com/2018/11/increasing-network-multiple-notaries.html公证服务信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 在金融中的应用- Part 1 - 教程

Python 在金融中的应用- Part 1 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

影响网站收录的因数沈阳工程最新动态

参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 一、驱动加载部分 [cpp] view plaincopy static int __init usb_mouse_init(void) { int retval usb_register(&a…

网站开发常用软件是什么成都市住房和城乡建设厅官方网站

编译安装为了实现MySQL的更高级别的性能调优,我们通常需要理解其内部实现机制,并对其进行优化调试。在下面的系列中,我们会分别介绍MySQL的部分内部实现机制。首先我们介绍如何从源代码部署一台MySQL服务器。1.下载MySQL Community Server源码…

QBXT2025S刷题 Day4

今天的题 \(75pts\ rk50+\) ,最废的一次。 T1 简单 \(\mathcal{DP}\)。 #include <iostream>using std::cin; using std::cout; const int N = 1e3 + 10; #define int long long const int mod = 998244353;int…

实用指南:2025年05月29日Github流行趋势

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

java学习日记9.25

9.25 学习笔记 类型转换由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。大小排序:byte, short,char-int-long-float[^1]-double运算中,不同类型的数据先转化为同一类型,然后进行运算。强制转换…

porting 开源memtester

1.下载代码 https://pyropus.ca./software/memtester/old-versions/ 目前用的版本是4.5.1 2.修改交叉编译器,并进行编译 arm-linux-gnueabihf-gcc3.指令 ./memtester 200M 5

广东省建设注册执业资格中心网站jae安装wordpress

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 …

江西省建设监理协会网站广州门户网站

目录 问题&#xff1a; 解决办法&#xff1a; 1.打开设置 2. 取消勾选 3.点击确认 4.解决 问题提出&#xff1a; 写shi山的过程中&#xff0c;给模块取错名字了&#xff0c;改名的时候不知道点到了什么&#xff0c;一个模块的pom.xml变成灰色了&#xff0…

上海专业网站建设维护wordpress后台进

Elasticsearch的Mapping Mapping是什么 Mapping定义了ES的索引结构、字段类型、分词器等&#xff0c;是索引的一部分。类似于关系型数据库中“表结构”的概念&#xff0c;在 Mapping 里也包含了一些属性&#xff0c;比如字段名称、类型、字段使用的分词器、是否评分、是否创建…

完整教程:用mediamtx搭建简易rtmp,rtsp视频服务器

完整教程:用mediamtx搭建简易rtmp,rtsp视频服务器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

查找网站后台入口丝绸之路网站建设报告

安装Jenkins成功之后&#xff0c;首次启动Jenkins后台管理&#xff0c;进入到安装插件的步骤&#xff0c;选择"推荐安装"&#xff0c;继续下一步的时候出现错误提示&#xff1a; 出现一个错误 安装过程中出现一个错误&#xff1a;No such plugin&#xff1a;cloudb…

百度免费网站申请注册企业贷款

蓝桥集训之三国游戏 核心思想&#xff1a;贪心 将每个事件的贡献值求出 降序排序从大到小求和为正是即可 #include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N 100010;int a[N],b[N],c[N];…

oppoR9m MTK 6755 开启VCOM的9008模式

前言全局说明oppoR9m MTK 6755 开启VCOM的9008模式注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 …

关于电脑息屏后自动亮屏的的原因排查及解决方式

1、问题描述 大约在 2025 年 9 月初的时候,我的联想拯救者笔记本电脑出现了锁屏息屏一段时间后自动亮屏的现象,在半夜时特别引人注意。 2、原因排查 经排查,我发现是联想壁纸服务的问题:异常现象发生后,锁屏壁纸不…

版本设计网站wordpress 试题

平台为了保证统一性&#xff0c;做了很多约定&#xff0c;例如按钮图标等&#xff0c;平台规定图标取自这两个地方。在整个平台上运行的系统必须保持一致。在这个层面上不允许个性发挥。 1) font-awesome import font-awesome/css/font-awesome.min.css // font-awesome …

angular2做的网站有设计风格网站欣赏

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 二分查找2.2 划分数组 1. 题目 给定两个大小分别为 m m m 和 n n n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为…

机器人世界杯工业联赛技术解析

本文深入探讨RoboCup@Work工业机器人联赛的技术细节,包括自主导航、物体抓取、传感器集成等关键技术,以及机器人硬件架构和软件系统的演进,展现了工业自动化领域的前沿研究进展。RoboCup@Work League:专访Christop…

HTML基础学习 - 教程

HTML基础学习 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

Squarepoint Challenge (Codeforces Round 1055, Div. 1 + Div. 2) A~E

A - Increase or Smash 模拟。 对于每个不是最大值的来说,都会经历一次先置为零然后再加的操作,重复项只计算一次;而最大值不用置为零,所以最开始会有一次。点击查看代码 #include <bits/stdc++.h>using nam…