在Solana合约链实现IBC协议跨链互操作 - 苏胤榕2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## SOLANA ## 在Solana合约链 实现IBC协议跨链互操作 @DaviRain ## 简单介绍下IBC协议是什么,及其生态 ## 介绍IBC协议和其在跨链互操作中的作用 ## I nterchain Standards |Number of Trees|Number of |---|---|---|---|---|---| IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 ## 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 - 对于本身就是使用Rust语言作为智能合约开发的区块链平台来说,支持集成支持IBC协议会很方便。 - 这里优先构想了在Solana链上实现IBC协议,因为Solan 思的这套实现方案。(后面会做解释) ## 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合约开发者在Solana上开发智能合约的难度。 - 以及本人对Solana平台的喜欢,优先考虑了Solana平台,但是这套方案是可以推广到任何的Rust智能合约平台的。 ## < / IBC协议概述 大致讲解下IBC协议的原理,以及参与整个IBC协议活动的不同决策0 码力 | 29 页 | 3.05 MB | 2 年前3
SOFAMesh的通用协议扩展## SOFA MESH 的通用协议扩展 邵俊雄(熊啸) 2018.08.25 ## AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 · 问答 ## SOFA MESH • 从 ISTIO 克隆并保持同步更新 - 使用 SOFA-MOSN 代替 Controller Pattern 通过 CRD 扩展新的能力 ## MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 - RPC 服务使用的接口,方法,参数语义无法匹配 ISTIO 的路由模型 • 一个应用上部署了多个 RPC 服务,每个服务有自己的版本 ## I STIO 控制平面路由的抽象模型 VirtualHost 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持 ## SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 - 避免为不同的微服务框架修改 PILOT 代码 • 通过插件的方式按需支持新的协议 • 对应用代码无侵入性 • 为微服务框架提供轻量化客户端0 码力 | 28 页 | 4.73 MB | 1 年前3
Greenplum分布式事务和两阶段提交协议## Greenplum分布式事务 和两阶段提交协议 钉钉直播 | 10月21日 20:00 - 21:00 #### Greenplum中文社区 https://cn.greenplum.org 博文·资料·文档·项目 ## 全新的问答论坛 #### https://cn.greenplum.org/askgp ## GREENPLUM DATABASE $ ^{®} $  是一种用于分布式、协作式和超媒体 信息系统的应用层协议。 HTTP 是一个客户端〈用户) 和服务端 (网站) Server ust China Conf 2022 - 20: HTTP 协议介绍 HTTP 协议主要具有以下特点: WO WO 支持客户/服务器模式。 简单快速: 客户向服务器请求服务时,只需传送 请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速度很快。 灵活: HTTP 支持传输任意类型的数据对象。 无连接:0 码力 | 26 页 | 1.25 MB | 2 年前3
CurveFS rename 接口实现方案rename 接口实现方案(已实现,选用方案二) 背景 • 方案调研 • Chubaofs • Juicefs • 方案实现 • 方案一:chubaofs • 方案二:事务方案 • 方案三:利用 KV 自带的分布式事务 • Q&A • 1. 是否需要实现跨文件系统的 rename 操作? • 2. 在多客户端情况下,是否需要加锁来保证其原子性? • 3. rename A→C(A 存在,而 C 存在) • 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? ## 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1)删除 file1 等同 file1 的 inode id)。关于 rename 接口的实现,主要调研了 chubaofs 和 juicefs,而 rename 的实现难点主要在于其原子性的保证。 ## 方案调研 ## Chubaofs chubaofs 中的 rename 实现不是原子性的,它是通用创建源文件的硬连接,然后删除源文件的方式来实现的,主要有以下 4 步: 1. 将源文件的 nlink 加一 20 码力 | 15 页 | 555.93 KB | 1 年前3
基于gRPC go实现消息发布订阅## 使用gRPC go实现 基于Topic的高效消息订阅发布模型  姓名:___ 张凯 中国电子云 实现后台执⾏⻓任务tags: electron, node ## description: 通过 Electron 托盘(tray)实现后台执行长任务。 Electron 应用在执行一些长时间任务(比如上传、下载),我们想关闭界面后任务依旧执行。再次打开界面,依旧可以看到正在执行的任务以及任务进度。托盘可以帮我们实现这个功能。 ## 创建托盘和菜单示例 • 实例化 Tray 并传入图标路径; • 创建菜单并配置到托盘中。 label: 'Item4', type: 'radio' } ]) tray.setContextMenu(contextMenu)) ## 基于托盘功能实现后台运行应用 ## 关闭应用前唤醒对话框二次确认 关闭应用时,触发对话框,可支持 3 种场景: 点击「取消」取消关闭操作; 点击「退出」,「后台运行」选中时,界面关闭,托盘不关闭,任务继续执行; setImage(getTrayIcon()); ## 托盘其他场景 显示未读消息数 tray.setTitle('6'); - 有未读消息时图标闪动:通过 setImage 定时轮询切换图标实现 ## 注意事项 MacOS 全屏退出界面是会出现黑屏问题,解决方案 判断如果全屏,在关闭全屏时,先退出全屏再隐藏界面 // 修复全屏 hide 黑屏问题 // https://github0 码力 | 6 页 | 1.19 MB | 2 年前3
基于amqp实现的golang消息队列MaxQ# 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 ## 内容 1. 队列 2. IPC消息队列 3. AMQP协议 4. MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 ### 1. 队列  跟消息队列相比,有哪些共性? ### 3. AMQP(Advanced Message Queuing Protocol)协议 • 七层应用协议 • 定义Broker实现 • 生产消费轻耦合 • 生产消费状态记录 • Push/Pull消费模型 • 消费者流控 • 事务支持  - 按照协议spec自动生成frame encode/decode • Exchange接口化 • Queue接口化——MaxQ集群 ## MaxQ - 生产实现架构 GreenplumIstio七层协议扩展服务发现流量管理模型xDS协议PostgreSQL逻辑复制WAL日志复制槽自定义输出插件Rust HTTP协议栈终端通信场景Ylong HTTP客户端库异步IO状态机rename接口ChubaofsJuicefs事务方案gRPC goTopic消息订阅发布模型protoPublisherSubscriberElectron托盘后台运行菜单系统主题MaxQAMQP协议消息队列GolangZookeeper













