首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【刘文彬】 Controller:EOS区块链核心控制器

    ,有默认值为"blocks" (state_dir) // 存储状态数据的目录名字,有默认值为"state" (state_size) // 状态数据的大小,有默认值为1GB (...如果传入区块号大于该参数设置的值(默认是0),则将标志位start_block_reached置为true。...1. fork_database构造器 在controller_impl的构造函数体中会被调用。...该结构体是一个抽象类型,包含四个成员函数: write,参数为ostream_wrapper实例(同样在detail命名空间下定义)的引用。 write,重载参数为sha256的加密器。...controller的功能是非常多的,贯穿整个链生命周期的大部分行为,深入研究会发现controller实际上是对数据的控制,正如java中的mvc模式,控制器的功能就是对持久化数据的操作。

    1.3K20

    ​【刘文彬】 EOS行为核心:解析插件chain_plugin

    中read_only类的实例 * call_name为函数名,实现体找chain_plugin.cpp文件 * 函数参数1个:此处规定了一个命名规则,接口名加入后缀...首先通过传入参数对象中的index_position字段来确定查询依赖的键,这是通过函数get_table_index_name完成的工作,同时会修改primary原对象的值,返回table名字的同时告知是否是主键...来自proposed_producers()函数,返回my->db.get()获取的全局属性中的proposed_schedule字段。 16....入参结构中唯一不同的字段是json格式的args改为了二进制类型的binargs,实际上这个二进制是字符的集合vector。返回值是json格式。函数实现与上面类似,不再展示。...(block); }); 在producer_plugin中找到了method的注册位置,真实调用的函数为生产插件中的on_incoming_block函数,参数在外部处理传入符合signed_block

    1.2K20

    Linux 网络编程:从 Socket API 到极简 Redis 发布订阅 subpub 服务的实现

    文件描述符: %d\n", sockfd); // 在实际应用中,套接字使用完毕后应显式关闭 // close(sockfd); return 0;}编译与执行 :gcc create_socket_example.c...: 地址族,对于 IPv4,必须设置为 AF_INET,与 socket() 调用中的 domain 参数保持一致。...这是一个 值-结果 参数:调用前,*addrlen 必须初始化为 addr 指向的缓冲区的实际大小。调用成功后,内核会将客户端地址结构的实际大小写入 *addrlen。...,其值应为所有被监听文件描述符中的最大值 加 1 。...返回值 0 : 表示对端执行了有序关闭(发送了 FIN 包),所有数据已接收完毕。这是 TCP 半关闭 状态的体现(对方关闭了写,本方可以继续写,但通常也应准备关闭)。

    29200

    EOS行为核心:解析插件chain_plugin

    中read_only类的实例 * call_name为函数名,实现体找chain_plugin.cpp文件 * 函数参数1个:此处规定了一个命名规则,接口名加入后缀...首先通过传入参数对象中的index_position字段来确定查询依赖的键,这是通过函数get_table_index_name完成的工作,同时会修改primary原对象的值,返回table名字的同时告知是否是主键...来自proposed_producers()函数,返回my->db.get()获取的全局属性中的proposed_schedule字段。 16....入参结构中唯一不同的字段是json格式的args改为了二进制类型的binargs,实际上这个二进制是字符的集合vector。返回值是json格式。函数实现与上面类似,不再展示。...(block); }); 在producer_plugin中找到了method的注册位置,真实调用的函数为生产插件中的on_incoming_block函数,参数在外部处理传入符合signed_block

    1K20

    EOS生产区块:解析插件producer_plugin

    第二个阶段是4个远程异步调用的声明: 前两个通讯模式是订阅一个channel绑定一个执行函数,一旦嗅到该频道被发布则执行绑定的函数。...总之,在代码中查找,发现bft不可逆区块号只有一个初始化为0的赋值动作,原因可能与EOS计划引入bft而目前还没有bft有关系。因此该值为0。 dpos不可逆区块号,controller初始化为0。...仍旧在generate_next函数中找到该字段的初始化值为calc_dpos_last_irreversible()函数的结果。 快照的头块号,初始化是0,如果有快照读入的话,就是快照的头区块号。...该函数的参数为匿名内部类组成的异步回调函数。...chain.sign_block( [&]( const digest_type& d ) { // 调用controller的sign_block函数进行函数签名,参数为一个回调函数。

    1.6K20

    MQTT 协议基本介绍

    参数 主题筛选器(Topic Filter) 一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。...值 1:消息应传送至少 1 次。 值 2:消息仅传送一次。 会话(Session) 每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。...订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。...定义连接行为的参数。见下表。 Keep Alive。2字节,客户端和代理之间的无活动时间超过该值后,应关闭连接。如果该值置0表示客户端不要求代理启用KEEPALIVE功能。...如果代理上已经有请求连接的客户端的会话,且连接请求的清除会话标识为0,则该位为1,否则该位为0。客户端可以根据这一位的值采取响应行为,比如(重新)订阅主题等。

    4.1K20

    MQTT–入门「建议收藏」

    “至少一次”,确保消息到达,但消息重复可能会发生。  “只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中,消息重复或丢失会导致不正确的结果。...一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。 二、会话(Session)  每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。...服务器会将消息发送给订阅所匹配标签的每个客户端。 四、主题筛选器(Topic Filter)  一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。...相于一个4位的无符号值,类型、取值及描述如下: 5.1.2 标识位 位置:Byte 1中bits 3-0。  在不使用标识位的消息类型中,标识位被作为保留位。...如果收到无效的标志时,接收端必须关闭网络连接: (1)DUP:发布消息的副本。

    1.4K20

    flea-msg使用之JMS初识

    它由如下三部分组成: (1) 消息头: 每个消息头字段都有相应的 getter 和 setter 方法。 (2) 消息属性: 如果需要除消息头字段以外的值,那么可以使用消息属性。...然后,从该生产者发出的所有消息都会使用这些默认值,除非在发送消息时通过指定备用目的地 或 为给定消息的消息头字段设置备用值 来覆盖这些默认值。...三个生产者向 Topic1 发布消息,三个消费者消费来自 Topic1 的消息;除非订阅者使用选择器来筛选消息,否则每个订阅者都会获得发布到所选主题的所有消息【其中,MyTSubscriber2 过滤掉了...多个订阅者可以消费来自主题的消息。订阅服务器检索发布到主题的所有消息,除非它们使用选择器筛选出消息,或者消息在使用之前过期。 订阅服务器可以共享一个连接或使用不同的连接,但它们都可以访问同一主题。...在要发送的消息中,将消息头的 JMSReplyTo 字段设置为该临时目的地。 当消息消费者处理消息时,它检查消息的 JMSReplyTo 字段以确定是否需要应答,并将应答发送到指定的目的地。

    37621

    什么是MQTT Last Will and Testament (LWT)遗嘱和遗言?

    在现实世界中,一个人可以立下遗嘱,说明其资产应如何分配以及去世后应采取什么行动。当他去世后,遗嘱执行人将遗嘱公布并执行遗嘱中的指示。...在 MQTT 中,客户端在连接时可以向服务器注册一个遗嘱消息(Will Message)。类似普通消息,我们可以设置遗嘱消息的主题、负载以及其他字段。...这是由 MQTT 5.0 引入的重要改进,我们稍后会讨论这一点。 Step 02: 代理会在断开连接函数被调用之前存储 LWT 消息。如果调用了断开连接函数,代理会丢弃 LWT 消息。...当服务器关闭现有的网络连接时,会话会立即结束,因为会话过期间隔为 0。虽然 Clean Start 设置为 0,但服务器会在新的网络连接中创建一个新的会话。因此,由于会话结束,遗愿消息将被发布。...由于我们尚未建立主题和主题别名之间的映射,这将导致服务器认为客户端的行为不符合协议规则并关闭连接,然后发送遗嘱消息: 由于设置了遗嘱延迟间隔,在发送消息 5 秒后,我们将看到遗嘱消息到达订阅者: 实际验证上述测试

    46410

    Day6——R包

    vars one_of(vars))#选择字符向量中的列,select中不能直接使用字符向量筛选,需要使用...one_of函数R语言中使用vars参数指定数据框中需要分析的字段索引范围在R语言中,我们经常需要对数据框进行分析和处理。...数据框是一种二维的表格结构,其中包含了多个变量(字段)和观测值(行)。在进行数据分析时,有时我们只对数据框中的特定字段感兴趣,而不需要使用所有的字段。...这时,我们可以使用vars参数来指定需要分析的字段索引范围,从而提取出感兴趣的字段进行后续操作。vars参数是dply包中select函数的一个参数,它允许我们通过指定字段的索引范围来选择需要的字段。...值计数函数计算数据集中列唯一值的数量count(test,Species)## Species n##1 setosa 2##2 versicolor 2##3 virginica 2dplyr

    47910

    MQTT V3.1协议规范

    Will消息在a的有效负载中定义CONNECT信息。 如果设置了Will标志,则Will QoS字段是必需的,否则忽略其值。 Will QoS的值为0(0x00),1(0x01)或2(0x02)。...如果设置了“用户名”标志,则“用户名”字段是必填字段,否则忽略其值。如果设置了密码标志,则密码字段是必填字段,否则忽略其值。在不提供用户名的情况下提供密码无效。...实际值是特定于应用程序的,但典型值是几分钟。最大值约为18小时。值为零(0)表示客户端未断开连接。 Keep Alive定时器的格式如下表所示。...下表中显示的值的含义特定于消息类型。返回码为零(0)通常表示成功。...如果客户端发送无效的CONNECT消息,则服务器应关闭连接。这包括提供无效协议名称或协议版本号的CONNECT消息。

    46710

    MQTT学习笔记

    第二个字节开始是剩余长度字节,该长度是后面的可变报文头加消息负载的总长度,该字段最多允许四个字节。 剩余长度字段单个字节的最大值为0x7F. 也就是127个字节。...3、 有效负荷 实际上可以理解为消息的主体。...参数 主题筛选器(Topic Filter) 一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。...值 1:消息应传送至少 1 次。 值 2:消息仅传送一次。 会话(Session) 每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。...订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。

    3.4K30

    分布式服务中的链式日志跟踪基础——理解和使用 DiagnosticSource 和 DiagnosticListener

    记住,DiagnosticListener 继承自 DiagnosticSource,所以它也是我们的通知源。我们在构造函数中为该提供者提供了一个名称。...这对这个示例没有实际的用处,但足以描述用法。为了简便,我们将在后续代码中重新使用直接传递字符串消息对象的方式。 匿名类型是推荐的默认选择,原因有很多。首先,您可以随时向它们添加新属性,且兼容性良好。...此实现对 _subscriptions 字段执行快速的空值检查,这是评估是否有任何订阅者的最快方式。...; 在上面的代码中,首先调用 DoIt 方法几次。在第一次调用后,我们将一个新的 Observer 直接订阅到 DoStuff 方法中的 DiagnosticListener 实例。...注意,我们只观察到在订阅后和处理订阅之前的两个通知。每个通知都会传递 DoIt 调用的字符串参数,并且我们在控制台消息中看到了它。 6.

    17300

    WLAN 感知概览(Wi-Fi Aware)

    发布服务 要使服务可被发现,请调用publish()方法,该方法接受以下参数: PublishConfig指定服务的名称和其他配置属性,如匹配筛选器。...,将调用onMessageReceived()回调方法可以使用此方法中的PeerHandle参数将消息发送回订阅服务器或创建到订阅服务器的连接。...订阅服务 要订阅服务,请调用subscribe()方法,该方法接受以下参数: SubscribeConfig指定要订阅的服务的名称和其他配置属性,如匹配筛选器。...,系统将在应用程序中调用onSubscribeStarted()回调由于可以在应用程序发现发布服务器后使用回调中的SubscribeDiscoverySession参数与该发布服务器通信,因此应保存此引用您可以通过在发现会话上调用...订阅服务器必须使用setMinDistanceMm和setMaxDistanceMm的某种组合指定地理围栏。 对于这两个值,未指定的距离表示没有限制仅指定最大距离意味着最小距离为0。

    3.5K20

    经典SQL语句大全之基本函数

    ,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度 3,right(char_expr,int_expr...如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。...SET NOCOUNT 为 OFF 时,返回计数 常识 在SQL查询中:from后最多可以跟多少张表或视图:256在SQL语句中出现 Order by,查询时,先排序,后取在SQL中,一个字段的最大容量是...Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的...的phone字段更新,则srv1.库名..author对应字段telphone更新 --*/ --大致的处理步骤--1.在 srv1 上创建连接服务器,以便在 srv1 中操作 srv2,实现同步exec

    90320

    HarmonyOS 开发实践——常见预置应用的跳转方式

    场景描述三方应用实际使用过程中,可能需要跳转到系统的预置应用进行一系列的操作,本文档提供了跳转各个预置应用的方法以及配置的参数场景一:通过系统 api 跳转到各个预置应用场景二:通过 want 跳转的形式跳转到各个预置应用场景一...代表无效状态,当获取呼叫状态失败时返回,返回的state为-1。...CALL_STATE_OFFHOOK代表至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃等待,返回的state为2。...当前PhotoViewPicker对接的选择资源来自于图库,保存位置为系统文件管理器的特定目录,因此使用save接口保存的图片或视频无法在图库中展示。如需在图库中展示,请使用安全控件创建媒体资源。...com.huawei.hmos.notepadMainAbility不需传值实现流程:以浏览器跳转方式为例,其他应用的跳转参考上述表格配置对应want参数即可:在want中传入action,bundleName

    34020

    【分享】在集简云上架应用如何配置一个触发动作?

    定时触发:由集简云每1-15分钟(由用户的付费版本决定)定时去应用系统中查询是否有新的数据,如果有新的数据将自动触发流程。...动作接口参数设置:配置触发动作接口调用时需要的参数。...Zoho CRM查询记录列表接口的排序字段为“sort_order”, 因为我们需要查询最新的数据,因此我们需要使用倒序,字段值填写“desc”从Zoho CRM的接口文档可以看到每条数据都有一个唯一ID...: id因此我们在“数据唯一标识”字段填写“id”更多关于接口中常用的变量,可以参考文档:编译变量&使用方式集简云在Jinja2模版语法的基础之上,提供了一些自定义的模版函数,如下: Jinja2...:设置字段补充信息,比如:如果一个性别字段返回的字段值为0,我们可以填写字段值说明,例如:0-未知,1-男,2-女,集简云将在前端展现此内容,帮助用户更好的使用我们的应用:6 如何测试触发动作:我们可以在集简云创建流程测试触发动作

    1.6K20

    mysql

    :类型为in,表示该参数的值必须在调用存储过程事指定,如果不显示指定为in,那么默认就是in类型。         ...(2)、IN类型参数一般只用于传入,在调用过程中一般不作为修改和返回         (3)、如果调用存储过程中需要修改和返回值,可以使用OUT类型参数 通过一个实例来演示: 需求:编写存储过程,传入id...(9):                                    图(9)   概括:         1、传出参数:在调用存储过程中,可以改变其值,并可返回;         2、out...,所以在实际应用中只有这样的进行特殊的处理。...Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的

    74730
    领券