QIAOPANG.COM · SELECTED ESSAYS (2013–2026) · 260 ESSAYSBrowse Chronologically (2013 → 2026) ↗
QiaoPang · Programmers LifeSelected Essays · Systems, Craft & Agentic Era
Timeline ↗

Arcblock’s Beijing Hackathon: Are You In?

Arcblock’s Beijing Hackathon: Are You In?

Hackathon—a hacker marathon, or simply a hackathon—is a beloved activity among programmers: it lifts the mood, broadens the horizons, and sparks inspiration. A group of people gather for a set period of time, collaborate closely around a theme, and write some interesting programs, applications, or products. According to Wikipedia, the term originated at a cryptography event for OpenBSD: ‘OpenBSD first used the term on June 4, 1999, at a cryptography development event in Calgary. Ten programmers gathered to discuss how to avoid the legal issues raised by U.S. cryptography software export regulations.’ After that, hackathons bloomed everywhere. Wherever there are programmers, there is bound to be a hackathon woven from pizza, soft drinks, the clatter of keyboards, and cheers rising now and then from the corners.

Just as children let loose in a playground, programmers give themselves over to the hackathon world, sweating freely and probing the limits of their own abilities. The miseries of work, the trivia of daily life, the anxiety of social feeds—none of it exists in that moment. Everyone absorbed in it stares at the screen, fingers flying across the keyboard with force and rhythm, as if performing a lilting, brisk Canon, or like the diligent shuttle on a loom in Wanted, ceaselessly weaving the next ‘God’s code.’

For Arcblock, making blockchain technology development and application increasingly friendly is our mission. We are building a series of tools to achieve that mission. The Open Chain Access Protocol, or OCAP, is the first core service we built. We read data from public chains, index block/transaction/account and other information, and build an Aurora-based Postgres Cluster for OLAP, plus a Parquet-format file set stored on S3 for offline analysis. On top of this data, we built a GraphQL-based API service that exposes data access. The overall system architecture is as follows:

Arcblock’s Beijing Hackathon: Are You In?

The biggest problem with an API service is that it is not intuitive enough. So around the OCAP API we provide a frontend playground for experimentation and exploration. When your exploration sparks an idea and you can’t wait to build something, we offer JavaScript/Node.js/iOS/Android SDKs to help turn that idea into an MVP quickly—and we have even thoughtfully provided React/Vue starter projects for frontend developers, ready to take you to the cloud with one click. Below is a project from the hackathon we held in Bellevue two weeks ago, built directly on our React starter project and the GraphQL subscription feature we provide:

Arcblock’s Beijing Hackathon: Are You In?

At this point, I’m sure some of you will ask: why did we choose GraphQL as our API layer?

GraphQL has not exactly set the world on fire since Facebook introduced it in 2016. The reason is that it is somewhat complex to implement on the backend and conflicts with engineers’ existing knowledge systems (and operations systems). I analyzed some of this two years ago in an article, ‘GraphQL: Are You Ready?’ Arcblock adopted GraphQL because we believe its philosophy—reducing the learning and usage costs for clients—fits Arcblock’s mission of making blockchain app development simple and convenient. Not only do we use GraphQL for the OCAP API; we are almost all in on GraphQL—every API we expose externally (or may expose in the future) uses GraphQL. To that end, we built a tool called Goldorin (not yet open-sourced) to reduce the burden of GraphQL development. Engineers only need to write an API description document in YAML; Goldorin generates the relevant Absinthe, Ecto, and other code. Finally, engineers just fill in the blanks in the generated resolvers, supplying the functions that resolve each field. With Goldorin, a whole series of tedious things like GraphQL notation/schema are handled by the tool, greatly lowering development difficulty. Beyond that, we have recently been thinking about how to build an internal service that lets frontend developers simply submit YAML describing the API they want to use; the backend would automatically generate and deploy a stub API with sensible stub data for the frontend to call. That way, frontend developers would not have to wait anxiously for backend support before they can complete their next step.

Some will also ask: why is your backend architecture built on Elixir?

The Elixir US 2018 conference is being held in Bellevue these two days, and Arcblock is one of the sponsors. While I was at the booth, many people asked me this question too. Technology serves the product. If you look at the OCAP API architecture in the diagram above, it is not hard to see that there are many microservice elements in it, and Elixir’s foundation—Erlang/OTP—is naturally microservice-oriented: every gen_server can be regarded as a microservice. What’s more, it fully supports many of the rituals you have to perform when using microservices: service registration and discovery (Registry), monitoring (link/monitor), self-healing (supervision tree), cluster management (distributed Erlang), and so on. So things that are complicated under other software architectures—where you rack your brains for ages before hatching one impressive solution—feel as natural in Elixir as a beginner’s driving lesson. For example, the real-time coin price, price_in_usd, provided in the OCAP API—its resolver is just a gen_server.

Moreover, Elixir may have the most mature (and most beautiful) GraphQL implementation outside Node.js (Apollo). With Absinthe + Phoenix, we can easily implement complex subscription APIs and run them in a cluster composed of several machines. For a cross-machine distributed subscription solution that does not depend on third parties (such as Redis/Kafka), perhaps only the Elixir approach can be confidently deployed in production and scaled out to dozens of machines. When we need to support a larger user base, the existing Elixir Phoenix pub/sub approach also makes it easy to integrate third-party tools—flexible and governable; what more could you ask for?

I’ve wandered off. Back to the hackathon.

We fully understand the precious time cost of attending a hackathon. After all, setting aside an entire valuable Saturday—not playing with your kids, not shopping (or gaming) with your wife (or husband), and spending a commute of unknown length that is said to be ‘killing’ another ten million young Beijingers—to attend a blockchain hackathon; if you got nothing out of it, that would seem unreasonable. So we are offering small gifts and prizes (though I believe you are unlikely to come for those), as well as two carefully prepared talks. The first will introduce Bitcoin/Ethereum in accessible terms and the characteristics of their technical implementations; the second will cover Arcblock’s tech stack, technology choices, the OCAP API architecture, and how to use the OCAP SDK to build applications. Through these two talks, we hope to share everything Arcblock knows about blockchain tech without reservation. Of course, outside the talks, we will also answer any questions about Arcblock/Bitcoin/Ethereum—anything except the coin price. If any technical issue arises during your hacking, our technical team and I will discuss and handle it with you right away.

To ensure the quality of participation in this hackathon, we will charge a 50 RMB ticket fee at registration, and then refund the full ticket price immediately via WeChat transfer to those who check in on site. This comes from the lesson of our second hackathon in Bellevue—too many people registered on Eventbrite, so we worried the venue could not accommodate all participants and ended registration early. On the day of the event, 80% of the participants did not show up, wasting venue capacity and someone else’s chance.

Event details are below:

  • Time: Saturday, 9/15, 9:30am–7:00pm
  • Address: URWork (Jiuxianqiao), 2nd Floor, Building C3, Zhaowei Industrial Park, Jiuxianqiao Road, Beijing (near Jiangtai Station on Metro Line 14)
  • Registration link: http://www.huodongxing.com/event/8456393424200 (You can also click ‘Read Original Article’ to go directly there, or search for arcblock on huodongxing.com and click ‘I Want to Register’ under the relevant event.)

Perhaps a hackathon like this can offer a little comfort to your restless heart, calloused by day after day of boring 996?

Perhaps an event where you make friends through code can help you find your own Xuzhu and Duan Yu on your career path?

Perhaps this small event will be, for you, the butterfly flapping its wings by the Amazon?

We sincerely welcome you to join us.

At Arcblock, since we held our first hackathon in early August

Although the clock ticking away is

I have participated in quite a few hackathons. Some were organized internally by companies, others by third parties—the cubicles in Wudaokou, the bright conference halls of the China National Convention Center, the Marriott in downtown San Francisco, City Center Plaza in Bellevue—I have left my footprints in all of them.

In my personal experience, the quality of a hackathon

Generally speaking, the quality of an internal company hackathon is inversely proportional to the size of the company. A hackathon is supposed to be entertainment—letting loose and doing whatever you want—but in big companies it becomes politicized and vulgarized. At a big-company hackathon, the winning team usually gets a CEO award and is received by leadership at the company all-hands. Besides a substantial cash prize, the team can also gain promotions and raises in the next performance review cycle. As a result, projects started during the hackathon window and built just for fun often get little love; the crown usually goes to highly polished products prepared long in advance, and some projects even take a slice of an in-progress product to pad their entry. In the final demo session, what the audience enjoys is not the programmer’s characteristic halting demo, the bone-chillingly awkward joke after a demo gets stuck, or the product that crashes halfway through; instead, it is a flawless presentation where every step is impeccable, and a PPT so perfect it feels fake. Listening to such a demo, you get the illusion: why is this ‘business presentation’ not being given to people in Armani suits, but to me in a plaid shirt?

Third-party hackathons are much better; people are far less careerist, and many small-scale hackathons feel more like meetups for making friends through code. I know people around me who hit it off at a hackathon: they formed a deep friendship during the event, kept in touch afterward, worked on small projects together, and after building up some momentum, simply paired up to start a company.

MORE IN Leadership & Career

Further Reading in This Column

View all essays in “Leadership & Career” →

The Programmer's Meltdown

After enduring the 'unsafe shitstorm,' actix-web's maintainer pulled the top-ranked Rust framework and walked away from open source—a story of maintainer burnout and the hidden cost of demanding that volunteers reshape their work for everyone else.

Book Next Chronicles (2013–2020)2,451 chars · 5 min read

Nana the Intern

When it comes to interns, beyond learning ability, I ask for one thing: a long enough runway. By "long enough" I mean at least two or three months — anything shorter and they leave before contributing anything of value, clutching a glowing evaluation form. Nana's story is an exception worth studying.

程序人生 (2015–2019)4,528 chars · 10 min read

ArcBlock at One Year

One year since trading the Bay Area for Washington State: a reflection on the winding road that built ArcBlock — its Forge framework, its bet on application chains, and the choices that led here.

Book Next Chronicles (2013–2020)6,593 chars · 15 min read