学姐的首次 Live Coding,独家秘籍你 get 到了吗?

昨天,学姐在 Nervos 直播间进行了为时三小时的首场 Live Coding,在直播中,学姐现场实现了 Open Transaction,也响应了大家的要求,女装出镜。

:point_down::point_down::point_down:

image (2)

学姐放话说,如果反响好,那么以后会持续地做系列直播,如果反响不好的话……那么这一次是第一次,也是最后一次给大家做 Live Streaming 了。( 大家且行且珍惜,别忘了在帖子下面评论来点反响呀!

本次的 Live Streaming 足足持续了三个小时,这也让我们不得不 感叹学姐的体力和脑力,相信我,这一定不是常人之所及。 至于到底有没有翻车呢?让我们先来看一下视频回顾:point_down:

在日常的工作中,学姐常常需要把 OTX 实现出来。本着不要所有的合约都自己做,给大家留点机会的原则,学姐在这个 Proposal 出来之后,等了一段时间。但是,这个 Proposal 自从三月份出来之后,一直也没有人做出来。 现在学姐又急迫地需要这个合约,所以还是不得已自己开始动起了手。

虽然我们现在的合约开发已经有很多流程和套路可以走,有很多调试工具可以用,但是这些工具大家实际用的并不频繁。我们常常会听到有人说:「我又调了一晚上,我又卡在那边调不出来了。」等等这些状况。但实际上有些情况可能并不是这么的复杂,只要换一个方法就可以平滑地实现。

所以,在这次的直播过程中,学姐为我们分别详细地讲解了下面四个内容:

  • Open Transaction 概念
  • 交易架构
  • 构建 & 调试 CKB 脚本
  • 一些有用的建议

整个直播学姐为大家展示了如何更好地写合约,学姐说,写 CKB 合约最重要的一点,是首先要搞清楚合约的架构:

  • 你的 transaction 是什么样子的?
  • 你的合约接受什么样的 transaction?
  • 什么样的 transaction 又会被你的合约拒绝?

如果你有这样一套足够完善的数据集之后,那么在实际写合约的过程就会变得简单很多。因为当你已经有了足够的测试之后,就可以进行更便捷的开发。

你可以写代码来验证一些 transaction,再用各种各样的工具来帮助你调试这些合约,甚至可以写一些 log message 来展示合约里用到的数据,并调试合约。这样一来合约的开发会越来越快。

一些实用的工具

Xuejie 全程分享了超多有用的开发工具和资料:

:point_right:standalone-debugger: 你是不是每次测试合约都需要运行一条 CKB 链?大可不必!来试试 standalone-debugger,不用运行 CKB 链,直接测试合约,支持 debug,printf,可查看合约 cycle 运行数量和完整的合约运行路径等等:

:point_right: Perkins’ tent :通过一个 docker 镜像包直接创建一个 CKB 服务器,不仅包含了 ckb 还包含了 graphql-server,一个更强大的 ckb-indexer,流控功能等等:

:point_right: Felix: 这是一个基于 Lumos 实现的在 telegram 内发红包的 DApp,Lumos 是一个基于 JavaScript / TypeScript 的 dApp 开发框架,这样广大的开发者们就可以通过 JS/TS 快速地开发基于 CKB 生态的 dApp 了。Felix 后面将基于它开发更多新的功能:

我们希望尽可能地通过这些工具来帮助大家简化调试的过程,如果大家从这次的 streaming 里能够掌握一些调试的技巧,帮助大家减少一些合约开发的时间,那么这次的 Live Coding 就达到目的了。

小 花 絮

燃场插曲

在为时三小时的 Live Streaming 过程中,学姐在每隔一小时的间隙里,为大家播放了燃场的歌曲:回忆杀 新世纪福音战士主题曲《残酷な天使のテーゼ》 ,和 我的三体之章北海传片尾曲《夜航星》 ,又一次把我们带入了程序员的二次元文化,以及 Nervos 的取名渊源(此处省略 1000 字)。

年少无知选择了 EMACS

有人说看到学姐在用 EMACS,却不知那是他年少无知时选择的编辑器,现在只不过是肌肉记忆。学姐一直在尝试淘汰它,但是一直没有成功。目前学姐正在写自己的编辑器,预计不久的将来会切换到自己的编辑器上。

后 记

因为一些众所周知的原因,昨晚直播的弹幕功能和我们擦身而过,这可能是直播过程中 最大的「翻车」 。Anyway,如果大家在写合约的过程中遇到了什么问题,或者有什么新的想法需要交流,都 欢迎大家留言或者来我们的论坛告诉我们,学姐和 CKB 团队定会知无不言言无不尽

:point_right: talk.nervos.org :point_left:

最后,衷心的希望大家无论是合约开发的流程,还是 dApp 开发的流程都能 越来越平滑,在 CKB 上惊艳四座!