MoonBit MeetUp回顾——张正、宗喆:编程语言在云原生与区块链领域的技术探索

宗喆和张正分别给我们带了 KCL 相关的最新进展,由蚂蚁集团开发的 Rust 编写的开源 DSL,目标是优化云原生策略配置和用户体验。它通过引入动态配置管理、配置校验和基础设施抽象等核心概念,解决开发者认知负担、配置膨胀和标准化工具缺乏的问题。自2022年6月开源后,KCL 于2023年成为 CNCF 托管的 Sandbox 项目。

KCL 项目 maintainer 宗喆说:“为了让 KCL 不仅适用于用 KCL 编写描述的基础设施,而且能够适用于存量已有的基础设施,我们提出了 KRM KCL 规范,目的是将 K8s 的资源与 KCL 关联起来。通过这种方式,KCL 的核心理念和特性能够与集群中现有的资源进行交互。”

在技术快速发展的今天,开发者利用 IaC 工具配置云资源需深入理解基础设施,同时云平台的复杂性和 AI 应用的开发难度提升了上手门槛。Pluto 项目应运而生,通过减少代码量和同步开销,简化云资源使用和 AI 应用开发,降低复杂性。Pluto 在简化云资源的使用和 AI 应用的开发流程,通过减少开发者需要编写的代码量,并消除业务逻辑与云配置之间的同步开销,从而降低了开发和部署的复杂性。

基于 LangChain 的聊天机器人的实例,传统开发需手动创建资源或编写300行代码。Pluto 使应用开发缩减至87行,简化流程,提高部署效率。

KCL 项目另一位 Maintainer 张正进一步深入介绍了蚂蚁集团在智能合约领域的另一项创新项目——Sonar。Sonar 搭档蚂蚁链 Aldaba 2.0 平台为开发者提供低门槛、一致的开发体验,强调易用性、高性能和安全性,同时针对平台进行了特定的分析和优化。

随着 Sonar 语言的开发,团队也孵化了 Smart IR 项目,一套多目标、多场景编译器框架,目前已在 GitHub 开源。Smart IR 作为一种中间表示,可以支持多语言前端,目前除了 Sonar 外,还提供了对以太坊上的 Solidity 语言的部分支持,展现了其灵活性和扩展性。

张正提到:

尽管 Sonar 目前还未开源,主要因为与平台特性紧密相关,但我们希望通过 Smart IR 促进智能合约的多语言支持和意图一致性检查。特别是在智能合约开发中,由于区块链的不可变特性,代码部署需极其谨慎,他们正在探索基于AI的代码审计工具,以简化审计过程,提高效率。

通过 Smart IR 的意图一致性工作,团队希望通过编译技术提取用户意图,与代码实现进行比较,评估一致性。初步实验显示,这种方法在一些公开数据集上达到了约85%的准确率,正在内部合约审计团队中测试和落地。

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

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

相关文章

京东云0基础搭建帕鲁服务器_4核16G和8核32G幻兽帕鲁专用服务器

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程,非常简单,京东云推出幻兽帕鲁镜像系统,镜像直接选择幻兽帕鲁镜像即可一键自动部署,不需要手动操作,真正的新手0基础部署幻兽帕鲁,阿腾云atengyun.…

go的通信Channel

go的通道channel是用于协程之间数据通信的一种方式 一、channel的结构 go源码:GitHub - golang/go: The Go programming language src/runtime/chan.go type hchan struct {qcount uint // total data in the queue 队列中当前元素计数,…

IDEA一键备份MySQL数据库(mysqldump版)

问题 又到了搬MySQL数据库的时刻,这次我不想使用命令行备份,这次我想使用IDEA一键备份MySQL数据库。 解决 假设安装好mysqldump命令后,让IDEA使用mysqldump一键备份指定的数据库。具体IDEA配置如下: 这是IDEA上面的数据库到处…

typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存

Manjaro安装RabbitMQ 安装 sudo pacman -S rabbitmq rabbitmqadmin启动管理模块 sudo rabbitmq-plugins enable rabbitmq_managementsudo rabbitmq-server管理界面 http://127.0.0.1:15672/ 默认用户名和密码都是guest。 要使用 rabbitmqctl 命令添加用户并分配权限&#xf…

云数据仓库Snowflake论文完整版解读

本文是对于Snowflake论文的一个完整版解读,对于从事大数据数据仓库开发,数据湖开发的读者来说,这是一篇必须要详细了解和阅读的内容,通过全文你会发现整个数据湖设计的起初原因以及从各个维度(架构设计、存算分离、弹性…

使用Apache Flink实现MySQL数据读取和写入的完整指南

1. 导言: Apache Flink是一款功能强大的流式处理引擎,可用于实时处理大规模数据。本文将介绍如何使用Flink与MySQL数据库进行交互,以清洗股票数据为例。 2. 环境准备: 首先,确保已安装Apache Flink并配置好MySQL数据…

如何为企业策划一场XR虚拟直播?

活动年年办,都是老一套,想玩点新花样? 预算有限,但还是想把活动办的逼格高一点? 想通过活动,让更多的人知道自己企业的品牌? 随着AIGC技术的不断演变,企业活动的形式和内容也在不…

kprobe/kretprobe的介绍,原理图,运行情况,用户层代码+内核层代码+预编译代码(详细解释+语法介绍),修改.bpf.c入口处的函数

目录 kprobe/kretprobe 介绍 原理图 运行情况 代码解释 .bpf.c 源码 语法 / 函数接口 char LICENSE[] SEC("license") "Dual BSD/GPL" SEC do_unlinkat filename结构体 ​编辑 BPF_KPROBE bpf_get_current_pid_tgid(…

Mybatis别名 动态sql语句 分页查询

给Mybatis的实体类起别名 给Mybatis的xml文件注册mapper映射文件 动态sql语句 1 if 2 choose 3 where 4 foreach 一&#xff09;if 查询指定名称商品信息 语法&#xff1a; SELECT * FROM goods where 11 <if test "gName!null"> and g.g_name like co…

学习vue3第十二节(组件的使用与类型)

1、组件的作用用途 目的&#xff1a; 提高代码的复用度&#xff0c;和便于维护&#xff0c;通过封装将复杂的功能代码拆分为更小的模块&#xff0c;方便管理&#xff0c; 当我们需要实现相同的功能时&#xff0c;我们只需要复用已经封装好的组件&#xff0c;而不需要重新编写相…

数据结构:基于数组实现栈

1 前言 栈是一种先进后出的线性表。向一个栈插入新元素可以叫做进栈、入栈、压栈&#xff0c;新元素必须放到栈顶元素上面&#xff0c;使之成为新的栈顶&#xff1b;从一个栈删除元素可以叫做出栈、退栈&#xff0c;它将栈顶元素删除&#xff0c;使和原来栈顶元素相邻的元素称…

RabbitMQ 实验消费原始队列消息, 拒绝(reject)投递死信交换机过程

如果你想通过 RabbitMQ 的死信队列功能实现消费者拒绝消息投递到死信交换机的行为&#xff0c;你可以按照以下步骤操作&#xff1a; 创建原始队列&#xff0c;并将其绑定到一个交换机上&#xff1a; export RABBITMQ_SERVER127.0.0.1 export RABBITMQ_PORT5672 export RAB…