Thinking about becoming a “full-chain dev”? Some candid perspectives from Dr. Leonid Alekseyev on his personal blockchain journey.
Hyperledger Fabric is an exciting project that has a lot going for it: flexible modular design, backing of major industry players, healthy developer community, great documentation, and plethora of tutorials and ‘hello world’ code samples.
At the same time, it’s maddeningly difficult to develop an end-to-end understanding of Fabric as a platform, create custom deployments, and develop real-world user-facing applications backed by smart contracts. There’s a huge gulf between simple chaincode examples and the rigors of a live blockchain network.
This state of affairs creates an unfortunate barrier to entry for many developers curious about distributed apps on permissioned blockchains. In large part, this barrier reflects the fact that as developers in 2019, we’ve grown to expect from our platforms and SDKs a substantially higher level of abstraction than what Fabric provides out of the box.
Whether we’re working on app backends, microservices, web front-ends, or mobile apps, our code runs within the context of frameworks and platform APIs that allow us to focus on business logic and data models in direct support of its implementation. A newcomer to Fabric, on the other hand, is faced with an overwhelming barrage of low-level primitives — channels, identities, certificate authorities, peers, transactions, endorsements, etc. — often without enough guidance on how to combine them into a non-trivially complex client-facing solution.
If you remember the early days of the Internet, this situation rings familiar. Before the days of frameworks, before you could pick a shiny off-the-shelf MVC implementation and combine it with your favorite ORM, message queue, and caching services, you walked uphill. In the snow. Both ways.
In those days, you had Apache 1.3 (if you were lucky), the CGI specification, and a small pile of Perl scripts. You wrote the business logic, you figured out how to talk to the database (if you had one at all), and you concatenated strings by hand to send HTML back to the client. And we aren’t even talking about the challenges of scaling these systems if you created something that generated user interest.
In many ways, Hyperledger Fabric is a decidedly modern project designed with scalability and security in mind. However, the experience of LedgerDomain engineers creating and deploying blockchain apps brings to mind those wintry walks to school, uphill both ways in the snow.
Undoubtedly, these experiences made us stronger. But more importantly, they cemented our belief that the world needs a blockchain application platform that’s easy to deploy and that insulates developers from low-level concerns that aren’t germane to the business logic at hand.
With this in mind, we’re currently focusing our efforts — not just on developing exciting applications that leverage the security and immutability of blockchain — but also on making sure these applications, powered by the Selvedge Blockchain Application Platform, are built using high-level and generalizable data models, workflows, and APIs.
While many helpful abstractions can be built and exposed on the chaincode level, we’ve found that many use cases are satisfied by a generic set of chaincode APIs. These can enable private file storage and cryptographic hash verification of file authenticity, as well as allow us to define a flexible, arbitrarily-extensible schema for establishing relationships between those files.
In fact, these APIs can be exposed outside of chaincode and called from standard REST handlers to implement application workflows — without needing to worry about the underlying details of blockchain or encryption! On projects such as DocuSeal (and client apps written on its framework), we’ve found this approach to be flexible and tremendously helpful in rapidly developing blockchain applications. As our tooling and SDKs mature, we’ll have more to share about these advances with the larger Fabric community.
Now if you’ll excuse me, I have to get back to server orchestration…
Dr. Alekseyev is the lead on re-factoring DocuSeal — a a blockchain-powered file storage and authentication solution. Simple on the surface but rich in possibilities, DocuSeal is being developed into a fully realized development framework. Now organizations can work together, confident that documents haven’t been doctored.