首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我们做区块链时,我们在做什么 | 洞见

汽车金融始终围绕车生命周期发生金融活动。零配件生产,到主机厂制造整车,然后通过各个区域销售公司将整车卖给各区域内经销商。...一个标准flow流程包括获取链上数据,创建一笔交易,自签名之后发送到对手方进行交易验证,再签名,最终在双方账本上分别提交事务。而Contract则是在交易验证环节提供验证所用脚本。 ?...;最后就是验证和签名以及事务提交过程。...数据上链识别,到智能合约设计,再到API设计,我们在不同层次利用Corda这个分布式账本技术。...借助Docker,我们把一个物理部署单元打包成了一个镜像,底层是一个全功能Corda节点,所有的智能合约和state都以jar包方式部署在这个节点上;同时利用SpringBoot通过RPC方式连接到

1.3K10

当我们做区块链时,我们在做什么

一个标准flow流程包括获取链上数据,创建一笔交易,自签名之后发送到对手方进行交易验证,再签名,最终在双方账本上分别提交事务。而Contract则是在交易验证环节提供验证所用脚本。 ?...,而输出即是新车和债;最后就是验证和签名以及事务提交过程。...Smart Contract in Corda API设计 有了智能合约之后,我们就得考虑如何暴露平台合约能力了。换句话说,消费者角度,我们该怎么利用平台提供能力完成自己业务。...API design 数据上链识别,到智能合约设计,再到API设计,我们在不同层次利用Corda这个分布式账本技术。...借助docker,我们把一个物理部署单元打包成了一个镜像,底层是一个全功能Corda节点,所有的智能合约和state都以jar包方式部署在这个节点上;同时利用springboot通过RPC方式连接到

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

K8s上快速和一致地部署生产就绪DLT平台|区块链自动化框架介绍

我们打算在不久将来增加对Hyperledger Besu和Corda Enterprise支持。可以很容易地添加其他DLT平台。 入门 要快速开始使用这个框架,请遵循我们入门指南[2]。...Corda Enterprise 对于Corda Enterprise,我们使用授权jarCorda源码构建Docker容器。...Corda Opensource 对于Corda Opensource,我们Corda源码构建Docker容器。许多不同Ansible脚本将允许你创建一个新网络(跨云)或加入一个现有的网络。...Hyperledger Indy 对于Hyperledger Indy,我们我们源代码中构建Docker容器。许多不同Ansible脚本将允许你创建一个新网络(跨云)。 ?...许多不同Ansible脚本可以让你创建一个新网络(跨云),可以选择共识(IBFT或RAFT)和事务管理器(Tessera或Constellation)。 ?

68220

跨境支付CBDC:区块链技术新起点(二)

SWIFT实验采样区块链技术 SWIFT在实验中采用了Corda和Quorum联盟链技术构建跨境支付模型,实现不同DLT网络之间CBDC到CBDC交易、CBDC到法币交易、法定货币到多样性事务交易...Corda平台分为3层:P2P层、系统层、账本层,如图7是Corda系统架构。...Corda系统架构 安全方面Corda在隐私保护和安全通信方面都有很好设计: 1. 隐私保护:在Corda中,只有交易各方提供签名,交易才能达成一致。...Corda所有事务都由一个或多个智能合约管理,这些合约定义了允许哪些操作以及谁可以执行这些操作,且在不公开事务内容情况下进行签名(盲签名技术),使用随机化私钥,交易双方仅通过其公钥进行标识,并且每个交易生成一个新密钥对...其中隐私性是Quorum重要部分,如图8是Quorum系统架构,其添加了隐私管理模块,将事务数据进行了隐私隔离,其中采用了加密飞地和零知识证明等技术,客户端在创建交易时,可以选择密文消息或者消息hash

1.6K10

RabbitMQ进阶使用

总结一下备份交换器情况: 如果设置备份交换器不存在,客户端和RabbitMQ服务无异常,消息丢失 如果备份交换器无绑定队列,客户端和RabbitMQ服务无异常,消息丢失 如果备份交换器无匹配队列,...客户端和RabbitMQ服务无异常,消息丢失 mandatory和备份交换器一起使用,mandatory参数无效 过期时间(TTL) RabbitMQ可以对队列和消息进行过期时间设置。...,此时过期消息都在队列头部,RabbitMQ只需要定期队列头部扫描过期消息并删除。...下面是RPC主要流程: 客户端向RabbitMQ一个队列(例如rpc)中发送消息,并且创建一个自定义队列(amq.gen-G6gTPol66waTRPHPQjPKAA),将自定义队列名称写入replyTo...为了解决上述问题,主要有以下两种解决方式: 事务机制:不推荐使用,事务会严重降低RabbitMQ性能 发送方确认机制(publisher confirm) 事务机制 由于事务机制不推荐使用,这里就简单描述

1.1K40

面向企业区块链教程(一)

互联网诞生以来,所有开发基于互联网应用程序都基于客户端-服务器架构,其中有一个中心化服务器构成应用程序后端并控制整个应用程序。...Oracle 是作为两个应用程序之间通信桥梁服务。在 Corda 中,交易发起者可以 Corda 网络外获取信息,并从Oraclize获取签名以证明其有效性。...领导者可以在先前区块提交之前创建新区块并将其发送给跟随者,区块创建是异步。但是当然,它们是按顺序提交。当节点启动时,它只会领导者那里获取丢失区块,而不会网络中其他节点获取。...geth为客户端提供了用于与其通信 JSON-RPC API。geth使用 HTTP、WS 和 IPC 提供 JSON-RPC API。JSON-RPC 提供 API 分为各种类别。...合同地址是其创建者地址(from 地址)和创建者发送事务数量(事务 nonce)确定地计算出来。这两个值都是 RLP 编码然后使用 keccak256 哈希算法进行哈希。

8700

Message Queue 06 - RabbitMQ消息确认

但是在开始事务模式情况下, RabbitMQ时延和吞吐量都有显著影响, 因此假如不是必要的话, 尽量避免使用事务机制....Confirm 生产者将channel设置为confirm模式, 一旦channel进入confirm模式, 所有在该channel上发布信息都会被指派一个唯一ID(1开始), 一旦消息被投递到所有匹配队列之后...关联标识 上述方法中, 每一个RPC都会请求新建一个回调队列, 更高效方法是为每一个客户端建一个独立回调队列. 但是此队列接收到一个响应时候无法辨别出这个相应是来自于哪个请求....如果发生这种情况, RPC服务器会在重启后重新请求, 这就是为什么客户端需要优雅处理重复相应, 同时也要尽量保证幂等性....因此我们要确保能够明确哪个函数是本地调用, 哪个函数是远程调用, 保证各个组建间依赖明确, 明确客户端如何处理RPC服务器宕机和长时间无响应情况.

25920

消息队列设计精要

答案是可以,但条件更为苛刻: 允许消息丢失发送方到服务方到接受者都是单点单线程。...解决方案大方向上有两种: 两阶段提交,分布式事务。 本地事务,本地落地,补偿发送。 分布式事务存在最大问题是成本太高,两阶段提交协议,对于仲裁down机或者单点故障,几乎是一个无解黑洞。...这里很多人容易混淆,如果是后者,无疑是事务嵌套RPC,是大忌,会有长事务死锁等各种风险。 而消息只要成功落地,很大程度上就没有丢失风险(磁盘物理损坏除外)。...回归来看,任何RPC都是存在客户端异步与服务端异步,而且是可以任意组合客户端同步对服务端异步,客户端异步对服务端异步,客户端同步对服务端同步,客户端异步对服务端同步。...总结 本文为何使用消息队列开始讲起,然后主要介绍了如何从零开始设计一个消息队列,包括RPC事务、最终一致性、广播、消息确认等关键问题。

1.8K50

消息队列设计1 何时需要

答案是可以,但条件更为苛刻: 允许消息丢失发送方到服务方到接受者都是单点单线程。...解决方案大方向上有两种: 两阶段提交,分布式事务。 本地事务,本地落地,补偿发送。 分布式事务存在最大问题是成本太高,两阶段提交协议,对于仲裁down机或者单点故障,几乎是一个无解黑洞。...这里很多人容易混淆,如果是后者,无疑是事务嵌套RPC,是大忌,会有长事务死锁等各种风险。 而消息只要成功落地,很大程度上就没有丢失风险(磁盘物理损坏除外)。...回归来看,任何RPC都是存在客户端异步与服务端异步,而且是可以任意组合客户端同步对服务端异步,客户端异步对服务端异步,客户端同步对服务端同步,客户端异步对服务端同步。...总结 本文为何使用消息队列开始讲起,然后主要介绍了如何从零开始设计一个消息队列,包括RPC事务、最终一致性、广播、消息确认等关键问题。

49640

搞懂分布式技术20:消息队列因何而生

所有跨VM一致性问题,技术角度讲通用解决方案是: 强一致性,分布式事务,但落地太难且成本太高,后文会具体提到。 最终一致性,主要是用“记录”和“补偿”方式。...答案是可以,但条件更为苛刻: 允许消息丢失发送方到服务方到接受者都是单点单线程。...还是拿扣钱/加钱例子讲。满足事务一致性特征,则必须要么都不进行,要么都能成功。解决方案大方向上有两种: 两阶段提交,分布式事务。 本地事务,本地落地,补偿发送。...这里很多人容易混淆,如果是后者,无疑是事务嵌套RPC,是大忌,会有长事务死锁等各种风险。而消息只要成功落地,很大程度上就没有丢失风险(磁盘物理损坏除外)。...回归来看,任何RPC都是存在客户端异步与服务端异步,而且是可以任意组合客户端同步对服务端异步,客户端异步对服务端异步,客户端同步对服务端同步,客户端异步对服务端同步。

32510

phoenix二级索引

然后,当一个查询使用该表达式时,索引可以用来检索结果而不是数据表。...保持表和索引之间一致性留给客户端处理。因为更新是幂等,所以最简单解决方案是客户端继续重试一批修改,直到它们成功。...每个数据行及其索引行保证被写入或丢失 - 从来没有看到部分更新,因为这是HBase原子性保证一部分。 首先将数据写入表中,然后写入索引表(如果禁用WAL,则相反)。...它还通过确保元数据rpc调用比数据rpc调用具有更高优先级来防止死锁。 Phoenix 4.8.0开始,不需要更改配置就可以使用本地索引。...客户端,我们支持在线(在初始化来自4.8.0+版本phoenix客户端连接时)和离线(使用psql工具)在4.8.0之前创建本地索引升级。

3.5K90

分布式知识总结

分布式系统演进和定义要理解分布式系统定义,必须了解应用如何单体到分布式演进过程。...RPC 框架构成客户端接口存根,代理客户端调用。网络传输模块,利用传输协议处理客户端和服务端数据传输。序列化模块,将请求和返回值转换为网络传输数据。...框架以客户端和服务端依赖库、代码生成工具集等形式提供。一次 RPC 调用流程客户端以本地函数调用方式调用服务。客户端存根收到请求将方法、入参等信息序列化成能够网络传输消息体。...常用 RPC 框架gRPCGoogle 开发开源 RPC 框架,属于云原生 CNCF 一部分。通过 protobuf 定义接口,支持为各种开发语言自动生成客户端和服务端存根。...数据持久性:前者可以确保数据不丢失,后者虽然也提供持久化机制但极端场景仍然会丢失。数据一致性:前者通过raft保证分布式各节点强一致性,后者属于单一结点设计,仅支持主从复制不支持强一致性。

14610

HBase架构详解及读写流程

它介于nosql和RDBMS之间,仅能通过主键(row key)和主键range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。...HBase Client端与Server端scan操作并没有设计为一次RPC请求,这是因为一次大规模scan操作很有可能就是一次全表扫描,扫描结果非常之大,通过一次RPC将大量扫描结果返回客户端会带来至少两个非常严重后果...•客户端很可能因为内存无法缓存这些数据而导致客户端OOM。 实际上HBase会根据设置条件将一次大scan操作拆分为多个RPC请求,每个RPC请求称为一次next请求,每次只返回规定数量结果。...每执行一次next()操作,客户端先会本地缓存中检查是否有数据,如果有就直接返回给用户,如果没有就发起一次RPC请求到服务器端获取,获取成功之后缓存到本地。...每次RPC请求获取数据都会缓存到客户端,该值如果设置过大,可能会因为一次获取到数据量太大导致服务器端/客户端内存OOM;而如果设置太小会导致一次大scan进行太多次RPC,网络成本高。

4.8K42

聊聊daos高性能分布式存储

,数据恢复是是其他副本或者校验数据进行恢复。...primary replica仅仅转发rpc到slave server.所有的副本节点请求都是通过RDMA方式,对端客户端buffer中直接获取数据。...如果这时候失效节点有恢复正常,它会根据数据恢复协议捕获到事务状态,同时忽略本地事务状态。...写操作节点直接客户端buffer中获取数据,daos ec也是采用二阶段提交协议保证数据在不同节点原子写入。...当在读过程中,有节点失效,daos会提供降级读,daos client会首先获取所有的数据stripe信息来重建已经丢失数据,采用两阶段提交协议,把事务传递给正常sever节点,然后进行丢失数据数据重建

2.9K20

聊聊 RocketMQ 主从复制

Master 节点负责接收客户端写入请求,并将消息持久化到磁盘上。而 Slave 节点则负责 Master 节点复制消息数据,并保持与 Master 节点同步。...2、异步复制 每个 Master 配置一个 Slave ,有多对 Master-Slave ,HA 采用异步复制方式,主备有短暂消息延迟(毫秒级),这种模式优缺点如下: 优点:即使磁盘损坏,消息丢失非常少...,且消息实时性不会受影响,同时Master宕机后,消费者仍然可以Slave消费,而且此过程对应用透明,不需要人工干预,性能同多 Master 模式几乎一样; 缺点:Master 宕机,磁盘损坏情况下会丢失少量消息...4、Master 解析请求偏移量,消息文件中检索该偏移量后所有消息; 当 Slave 上报数据到 Master 时,触发 SelectionKey.OP_READ 事件,Master 将请求交由 ReadSocketService...写服务 WriteSocketService 消息文件中检索该偏移量后所有消息(传输批次数据大小限制),并将消息数据发送给 Slave。

40630

面试官:消息队列中,消息可靠性、重复消息、消息积压、利用消息实现分布式事务如何实现...

还可以通过缺失序号来确定丢失是哪条消息,方便进一步排查原因 大多数消息队列 客户端都支持拦截器机制,可以利用这个拦截器机制,在Producer发送消息之前拦截器中将序号注入到消息中,在Consumer...客户端收到响应后,完成了一次正常消息发送 只要Producer收到了Broker的确认响应就可以保证消息在生产阶段不会丢失。...这样当某个Broker宕机后,其他Broker可以替代宕机Broker,也不会发生消息丢失 消费阶段 消费阶段采用和生产阶段类似的确认机制来保证消息可靠传递,客户端Broker拉取消息后,执行用户消费业务逻辑...如果Broker没有收到消费确认响应,下次拉消息时候还会返回同一条消息,确认消息不会在网络传输过程中丢失,也不会因为客户端在执行消费逻辑中出错导致丢失 在编写消费代码时需要注意是,不要在收到消息后就立即发送消费确认...无论是增加每次发送消息批量大小,还是增加并发都能成倍地提升发送性能 比如说,消息发送端主要接收RPC请求处理在线业务,因为所有RPC框架都是多线程支持多并发,自然就实现了并行发送消息。

51810

一文搞懂hadoopmetrics

因此如果有多个rpc监听端口,也就会有多个这样模块,每个端口一个。 该模块下指标主要为客户端和datanode不同rpc请求统计信息,包括请求次数以及平均响应时长。...rpc请求在队列中平均时长(接收到被处理过程中在队列中时长) RpcProcessingTimeNumOps rpc累计请求数 RpcPorcessingTimeAvgTime rpc请求平均处理耗时...StartupProgress 记录nn启动各个阶段信息、包括各阶段耗时、完成度、以及各个阶段自身一些数据,例如从fsimage中加载inode数,editlog中加载事务数等,详细说明如下...:毫秒) LoadingEditsTotal editlog中加载事务总数 LoadingEditsPercentComplete 加载editlog完成度 SavingCheckpointCount...nn活跃信息,主要还是客户端角度进行统计,因此会和RpcDetailedActivityForPortXXX有不少相同指标项。

89130

面试官:面对千万级、亿级流量怎么处理?

我们假设原来来自客户端QPS是9000的话,那么通过负载均衡策略分散到每台机器就是3000,而HTTP改为RPC之后接口耗时缩短了,单机和整体QPS就提升了。...MQ丢失 如果生产者保证消息发送到MQ,而MQ收到消息后还在内存中,这时候宕机了又没来得及同步给节点,就有可能导致消息丢失。...由于mysql默认复制方式是异步,主库把日志发送给库后不关心库是否已经处理,这样会产生一个问题就是假设主库挂了,库处理失败了,这时候库升为主库后,日志就丢失了。由此产生两个概念。...全同步复制 主库写入binlog后强制同步日志到库,所有的库都执行完成后才返回给客户端,但是很显然这个方式的话性能会受到严重影响。...但是这个问题本身会带来更多问题,微服务本身拆分带来了分布式事务问题,http、RPC框架使用带来了通信效率、路由、容错问题,MQ引入带来了消息丢失、积压、事务消息、顺序消息问题,缓存引入又会带来一致性

53910

消息队列中:消息可靠性、重复消息、消息积压、利用消息实现分布式事务

还可以通过缺失序号来确定丢失是哪条消息,方便进一步排查原因 大多数消息队列 客户端都支持拦截器机制,可以利用这个拦截器机制,在Producer发送消息之前拦截器中将序号注入到消息中,在Consumer...客户端收到响应后,完成了一次正常消息发送 只要Producer收到了Broker的确认响应就可以保证消息在生产阶段不会丢失。...这样当某个Broker宕机后,其他Broker可以替代宕机Broker,也不会发生消息丢失 2.3、消费阶段 消费阶段采用和生产阶段类似的确认机制来保证消息可靠传递,客户端Broker拉取消息后...如果Broker没有收到消费确认响应,下次拉消息时候还会返回同一条消息,确认消息不会在网络传输过程中丢失,也不会因为客户端在执行消费逻辑中出错导致丢失 在编写消费代码时需要注意是,不要在收到消息后就立即发送消费确认...无论是增加每次发送消息批量大小,还是增加并发都能成倍地提升发送性能 比如说,消息发送端主要接收RPC请求处理在线业务,因为所有RPC框架都是多线程支持多并发,自然就实现了并行发送消息。

1.9K20

消息可靠性、重复消息、消息积压、利用消息实现分布式事务

还可以通过缺失序号来确定丢失是哪条消息,方便进一步排查原因 大多数消息队列 客户端都支持拦截器机制,可以利用这个拦截器机制,在Producer发送消息之前拦截器中将序号注入到消息中,在Consumer...客户端收到响应后,完成了一次正常消息发送 只要Producer收到了Broker的确认响应就可以保证消息在生产阶段不会丢失。...这样当某个Broker宕机后,其他Broker可以替代宕机Broker,也不会发生消息丢失 2.3、消费阶段 消费阶段采用和生产阶段类似的确认机制来保证消息可靠传递,客户端Broker拉取消息后...如果Broker没有收到消费确认响应,下次拉消息时候还会返回同一条消息,确认消息不会在网络传输过程中丢失,也不会因为客户端在执行消费逻辑中出错导致丢失 在编写消费代码时需要注意是,不要在收到消息后就立即发送消费确认...无论是增加每次发送消息批量大小,还是增加并发都能成倍地提升发送性能 比如说,消息发送端主要接收RPC请求处理在线业务,因为所有RPC框架都是多线程支持多并发,自然就实现了并行发送消息。

1.2K20
领券