ArcBlock 北京黑客松,你来不来?

作者:陈天(ArcBlock 研发副总裁)

黑客马拉松是什么?为什么 ArcBlock 要举办黑客松?下周六在北京举办的黑客松将期待什么?ArcBlock 研发副总裁陈天亲撰本文,为你娓娓道来,并向所有在北京、对区块链心驰神往的朋友们发出了邀约……

Hackathon,黑客马拉松,或者黑客松,是程序员们喜闻乐见的一种愉悦心情,开阔眼界,碰撞灵感的活动 —— 一群人,在一段特定的时间内,相聚在一起,通力合作,针对某个主题,编写点有意思的程序,应用,或者产品。根据 wikipedia 的记载,hackathon 起源于 OpenBSD 的一次密码学活动:「OpenBSD 于 1999 年 6 月 4 日在卡尔加里举办的一次密码学开发活动上第一次使用了该术语。在那次活动中,10 名程序员相聚到一起商讨如何避免由美国密码学软件出口规定引起的合法性问题」。在那之后,hackathon 遍地开花,有程序员的地方,便少不了由 pizza,软饮,噼里啪啦的键盘敲击声,角落里间或传来的欢呼声交织成的 hackathon。

就像小孩子们在游乐场放飞自我一样,程序员在 hackathon 的世界里尽情挥洒汗水,探寻个人能耐的边界。工作上的苦楚,生活中的琐事,朋友圈里的焦虑,在这一刻都不复存在。沉浸于其中的每个人,眼睛盯着屏幕,双手飞快地,铿锵有力地在键盘上敲击,仿佛在演奏悠扬轻快的卡农,又仿佛《通缉令》里织布机上辛勤劳作的梭子,永不停歇地谱写下一个「上帝密码」。

对 ArcBlock 来说,让区块链技术的开发和应用变得越来越友好是我们的使命。我们正在打造一系列的工具来达成这个使命。Open Chain Access Protocol,或者说 OCAP,是我们打造的第一个核心服务。我们读取公链上的数据,将 blocks / transactions / accounts 等信息索引出来,构建了一个基于 Aurora 的 Postgres Cluster,方便对数据进行 OLAP;以及基于 Parquet 格式的文件集,存储于 S3 之上,方便离线分析。在这些数据的基础上,我们搭建了一套基于 GraphQL 的 API 服务,对外提供数据的访问。整个 API 系统的结构如下:

API 服务的最大问题是不够直观,因而我们围绕着 OCAP API 提供了前端的 playground,方便大家实验和探索;当你在探索的过程中有了些许灵感,迫不及待想要做点什么的时候,我们提供了 javascript / nodejs / iOS / android 的 SDK,方便大家将灵感快速 MVP 化 —— 甚至,我们还贴心地为前端的同学提供了 react / vue 的 starter projects,一键带你飞上云端。下面是我们两周前在 Bellevue 举办的 hackathon 的一个作品,直接基于我们的 react starter project 和我们提供的 GraphQL subscription 功能:

讲到这里,我相信有些同学会问,为什么我们要采用 GraphQL 作为 API layer?

GraphQL 自 facebook 在 2016 年推出以来,并未大红大紫,究其原因,还是后端实现起来有些复杂,和工程师已有的知识体系(以及运维体系)有所冲突。我在两年前的文章:GraphQL,你准备好了么 有过一些分析。ArcBlock 之所以采用 GraphQL,是因为我们觉得它的思想 —— 减轻客户端的学习成本和使用成本,很契合 ArcBlock 的让 blockchain app 开发变得简单便利的使命。我们不但在 OCAP API 上采用 GraphQL,我们几乎 all in GraphQL —— 所有对外(或者未来可能对外)的 API,我们都采用 GraphQL。为此,我们打造了一套叫 Goldorin 的工具(尚未开源),来减轻 GraphQL 的开发难度。工程师只需要撰写 yaml 格式的 API 描述文档,Goldorin 会生成 Absinthe,Ecto 等相关的代码,最后工程师只需要在生成的 resolver 里面做完形填空,填写如何 resolve 各个 field 的函数即可。通过 Goldorin,GraphQL notation / schema 等一系列繁琐的事情都被工具完成,开发的难度被大大降低。不仅如此,最近我们还在思考:如何构建一个内部的服务,让前端的同学只需要提交 yaml,描述好她希望使用的 API,后端自动生成并部署 stub API,提供理性的 stub data,供前端调用。这样,前端就不需要巴巴等着后端提供支持,才能完成下一步的工作。

还有同学会问:为什么你们的后端架构在 elixir 之上?

这两天在 Bellevue 举办 Elixir US 2018 conference,ArcBlock 是赞助商之一。我在站台的时候,也有很多人问我这个问题。技术是为产品服务的。如果你看上图 OCAP API 的架构,不难发现,里面有很多 micro service 的点。而 elixir 的基石 —— erlang/OTP,天然就是 micro service 的完美诠释 —— 每个 gen_server,都可以被视作一个 micro service。不仅如此,它还完整支持了使用 micro service 不得不做的很多固有仪式:比如说服务注册和发现(Registry),监控(link / monitor),自我治愈(supervision tree),集群管理(distributed erlang)等等。所以其他软件架构做起来复杂,憋半天才憋出一个 NB 的解决方案的事情,在 elixir 下,自然得仿佛在做新手上路的练习。比如 OCAP API 里面提供的实时币价 price_in_usd,它的 resolver 就是一个 gen_server 而已。

此外,elixir 可能有 nodejs(apollo)外最成熟(最漂亮)的 GraphQL 实现。借助 Absinthe + Phoenix,我们可以轻松实现复杂的 subscription API,并且,运行在一个若干台机器组成的 cluster 里面。跨机器的不依赖第三方(比如 redis / kafka)的分布式 subscription 方案,可能仅有 elixir 的方案可以放心部署在 production,并 scale out 到数十台机器。需要支持规模更大的用户时,现有的 elixir 的 Phoenix pub/sub 方案又很容易集成第三方的工具 —— 所谓可箩可御,不过如此。

扯远了。回到 hackathon。

我们充分理解参加一次 hackathon,你所付出的宝贵的时间成本 —— 毕竟,匀出一整天宝贵的周六,不陪孩子玩耍,不陪老婆(老公)逛街(打游戏),花上据说又在「杀死」一千万北京青年的,不知道有多久的通勤时间,来参加一场 blockchain 这样一个相对陌生的领域的 hackathon,如果得不到些什么,似乎说不过去。所以我们提供了一些小礼物和小奖品(当然我相信你不太会冲着这个而来),以及精心准备了两场 talk。第一场会深入浅出介绍 bitcoin / ethereum,以及他们技术实现上的特点和亮点;第二场会介绍 ArcBlock 的技术栈,技术选型,OCAP API 的架构,以及如何使用 OCAP SDK 构建应用。我们希望通过这两场讲座,把我们 ArcBlock 对 blockchain tech 的认知,毫无保留地分享给大家。当然,讲座以外的时间,我们也会为大家解答币价以外的,任何有关 ArcBlock / bitcoin / ethereum 的问题;同时,当你在 hack 的过程中,出现的任何技术问题,我和我们的技术团队,也会第一时间和你探讨和处理。

为了保证参与质量,此次 hackathon,在注册时我们会收取 50 元的门票,然后现场签到者我们即时微信转账返还全额门票。这是吸取了我们第二次在 Bellevue 举办 hackathon 的教训 —— eventbrite 上注册了太多人,使得我们担心活动场地无法容纳全部参与者,于是提前结束了注册,结果活动当天 80% 的参与者都没有出现,白白浪费场地资源和别人的机会。

下面是活动详情:

  • 时间:9/15 周六 9:30am - 7:00pm

  • 地址:优客工场(酒仙桥),北京市酒仙桥路兆维工业园C3号楼2层(地铁 14 号线将台站附近)

  • 报名链接:扫下面的小程序码直达(或者在 huodongxing.com 里搜索 arcblock,然后在相应活动下点击「我要报名」)

也许,这样一场 hackathon,能够小小抚慰你那颗被 996 磨出茧子的,磨平希望,但依旧不安分的心?

也许,这样一场以码会友的活动,能够帮你找到自己事业上的「虚竹」和「段誉」?

也许,太多的也许。也许冥冥中,这就是亚马逊河边煽动翅膀的蝴蝶?

我们诚挚地欢迎你的到来!100个名额,报完即止!

相关阅读

ArcBlock 博客 | OCAP 超简易集成攻略( iOS 版篇)

ArcBlock 黑客松 ② | 新 SDK 亮相 黑客应用质量更高

ArcBlock 博客 | 浅析数据对区块链行业发展的重要性

ArcBlock 博客 | 开放链访问协议为何采用 GraphQL

ArcBlock 博客 | 如何解析 BITCOIN 的数据

ArcBlock 活动 | 首场内测版黑客马拉松成功举行

ArcBlock 博客 | 30 天 21 个版本 OCAP Playground 都经历了哪些变化?

ArcBlock 博客 | 如何在几十个 Repo 中游刃有余?

ArcBlock 博客 | OCAP Playground 入门指南

更多ArcBlock区块基石信息,可关注以下渠道了解: 

  • Twitter | https://twitter.com/ArcBlock_io

  • Instagram | https://www.instagram.com/arcblock/

  • Facebook | https://www.facebook.com/arcblock.io/

  • Telegram | https://t.me/ArcBlock

  • LinkedIn | https://www.linkedin.com/company/18355951/

  • Reddit | https://www.reddit.com/r/arcblock/

  • Medium | https://medium.com/arcblock

  • 微博 | https://weibo.com/realArcBlock

  • 微信群 | 加拉群小助手:Ddchain

  • 电报群 | Telegram groups:

    Telegram(English): https://t.me/ArcBlock

    Telegram(繁体中文): https://t.me/ArcblockAsian

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值