茶话会第三期:CKB 交易构造初体验

为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列CKB Developer Seminar(CKB.DEV 茶话会)的活动。

CKB Developer Seminar 是一个小众的专为 CKB 开发者服务的一个技术活动。我们会定期邀请 CKB 开发者,可能是 CKB 核心开发团队成员,也可能是 CKB 生态中的开发者,在活动上介绍自己的开发或研究工作,提出开发中遇到的难题,也可以在活动中向其他开发者发出协作请求等等。

参与对象:程序猿、工程狮、产品锦鲤、研究猿等加密世界的建造者们。活动定位:小众技术宅们的大型聚会
我们相信 CKB 是更优质更灵活的底层公链平台,在这里你可以实现加密世界的无限可能。

第三期茶话会我们要讨论的主题是:

CKB 交易简介及交易部署实操

茶话会第三期:CKB 交易构造初体验

前言

茶话会已经成功举办两期了,第一期我们先和王博老师聊了聊「如何在 CKB 上实现 UDT」,主要分析了 CKB 上全新的编程范式,我们常常提起的智能合约在 CKB 上并非以合约的形式存在,而是以 Script/ 脚本 的形式进行实现的,并且通过 Lock Script + Type Script 的设计,为 CKB 上实现丰富多样的智能合约逻辑提供了充分的灵活性。
第二期我们邀请到了陈宇老师来为我们讲讲「CKB 钱包和 Nervos DAO 全流程」,陈宇老师向大家介绍了:CKB 上的私钥生成、公钥推导、地址衍生、转账交易撮合和 Nervos DAO 的存取与收益计算等内容。这样我们对于 CKB 上的私钥、公钥、地址、交易撮合就有了一个系统的认识。
在此基础上,我们还要向大家介绍一些重要的内容,这就是我们这次茶话会的主题:CKB 交易简介和具体交易部署的示例演示
本期茶话会主要会分享以下内容:CKB 交易结构介绍及各字段含义详解;如何在 CKB 上构造一笔交易:以默认的锁定脚本及 Nervos DAO 合约为例。

本期主讲人是:jjy蒋金洋老师(核心开发团队吴亦凡)。
要知道 CKB 上的脚本部署都是通过交易转账完成的,并且脚本部署和脚本引用是否正确,直接关系到用户能否成功与脚本进行交互,因此本期内容的重要性毋庸置疑,你可千万别错过了。
本期结束后,我们就已经初步完成了关于 CKB 开发的基础内容的分享,之后我们会推出「如何在 CKB 上编写智能合约」的系列茶话会,希望可以尽早与大家见面!

茶话会第三期:CKB 交易构造初体验

会前预习**
**

为了让各位参与茶话会的成员,有更好的参会体验,因此在本次茶话会前,会先给大家发布一些预习任务,大家需要提前了解熟悉一下相关的内容。
我们希望这样的茶话会能够给你带来一定的收获,我们也相信你会给予分享者足够的反馈和支持,因此我们会提前为您准备一些资料,相信这样一个准备的过程,会带给您更加优质的互动体验。

必备内容

Cell 基础结构,Script

在了解交易结构前,我们首先要对 CKB 的基础结构单元Cell和 Cell 中非常重要的元素Script,有一个初步的认识。
Cell 基础结构:

*【文章】理解 CKB 的 Cell 模型 by Jan
https://talk.nervos.org/t/ckb-cell/1562/19
*【RFC】Data Structures by Nervos
https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0019-data-structures/0019-data-structures.md#Cell 中文版:https://ckb.dev/topic/14/rfcs-0019-data-structures-ckb-%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84

Script 介绍:

*【文章】CKB 验证模型 by xuejie
https://xuejie.space/2019_07_05_introduction_to_ckb_script_programming_validation_model/
中文版:https://orangem.io/2019/07/07/ckb%E8%84%9A%E6%9C%AC%E7%BC%96%E7%A8%8 B%E7%AE%80%E4%BB%8 B-1-%E9%AA%8C%E8%AF%81%E6%A8%A1%E5%9E%8 B/
*# 【讨论】CKB 上 type script 的定位 by 论坛

https://talk.nervos.org/t/ckb-type-script/1329

关于 Script,有一段话一直令我印象深刻:

Lock 管死,Type 管生。Lock 负责 TX 中 input cells 的验证,Type 负责 output cells 的验证。Type 负责的是不能随意创建有某个 Type 的 cell 出来,反过来的话,如果 cell 的 Type 是 X,那该 cell 一定通过了 X 的验证。(by Ian)

CKB 交易结构

当你对 Cell 和 Script 有了一个初步的了解之后,就可以进入到本期茶话会的核心内容了,也就是CKB 交易结构
交易结构:

*【RFC】Transaction Structures by Nervoshttps://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md 中文版:https://ckb.dev/topic/20/rfcs-0022-transaction-structure-ckb-%E8%BD%AC%E8%B4%A6%E7%BB%93%E6%9E%84

当您预习完以上内容,那么非常欢迎您,诚挚地邀请您参与到本次 ckb.dev 茶话会来

进阶内容

以下就属于进阶部分了,对于一位想要真正来 CKB 上进行开发的斯巴达勇士,怎么可能就此满足于以上内容,最核心最重要的当然是 Script 的开发啦,以下内容,你值得拥有。

Lock Script 详解

目前 CKB 主网默认使用的签名算法是 SECP256k1,签名算法主要是用来决定谁可以解锁这个 cell 的,谁可以解锁这个 cell 谁就拥有了对这一部分 CKB 的绝对控制权。
在 CKB 中,开发者是可以自定义签名算法的,因此了解 SECP256k1 可以帮助你进行相关开发,比如创建你所需要的签名算法。注意,修改 Lock Script 需要非常非常谨慎,因为一不小心,你的 CKB 就可能被你锁进另一个世界了。
SECP256k1 lock 脚本:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/secp256k1_blake160_sighash_all.c
SECP256k1 multisig lock 脚本:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/secp256k1_blake160_multisig_all.c
另一个在本次操作中会用到的就是 Nervos DAO 的合约了,关于 Nervos DAO 的具体内容,我就不再详述了,不了解的小伙伴可以直接前往:Nervos DAO 中的存入和取出
Nervos DAO 脚本:https://github.com/nervosnetwork/ckb-system-scripts/blob/master/c/dao.c

Script 开发

这一部分目前主要推荐两位技术大神开发的教程系列。

Introduction to CKB Script Programming 系列:

https://xuejie.space/

Build CKB contract with Rust 系列:

https://justjjy.com/

茶话会第三期:CKB 交易构造初体验

我要报名

CKB Developer Seminar

本期主题:CKB 交易简介及交易部署实操主分享人:蒋金洋(Nervos Network 开发者)聚会时间:1 月 8 日(周三)21:00聚会地点:某 Zoom 频道我要报名:添加下方微信,并标注“茶话会

茶话会第三期:CKB 交易构造初体验

往期茶话会回顾:

茶话会第三期:CKB 交易构造初体验

第二期:CKB 钱包和 NervosDAO 全流程

茶话会第三期:CKB 交易构造初体验

第一期:原来 CKB 上的 UDT 可以这么玩

来源链接:mp.weixin.qq.com