Since my last post on blockchain I’ve installed the Ethereum wallet and examined the application and I can report that it’s not exactly straightforward to navigate. This is definitely a programming development environment and not meant for your typical user. Over the next few days I’ll look at the components of Ethereum and check out some tutorials and content available at the following places:
- Ethereum documentation
- Devcon 3
- Ethereum Blog
- Embark Framework
- Truffle Framework
- Coco Framework
This post is part two in a series. I’m posting my research as an outlet to teach myself and others about blockchain technology. If you have any recommendations for resources I should consider please leave a comment below.
The Embark Framework is an all inclusive open source development environment for blockchain. The nice thing about Embark is that if you are a front-end developer you can focus more on that side of things with this framework. According to the readme on Github,
“Embark is a framework that allows you to easily develop and deploy Decentralized Applications (DApps). A Decentralized Application is a server-less html5 application that uses one or more decentralized technologies. Embark currently integrates with EVM blockchains (Ethereum), Decentralized Storages (IPFS), and Decentralized communication platforms (Whisper and Orbit). Swarm is supported for deployment.”
One of the aspects of Embark that interests me is the integration with IPFS which is the Interplanetary File System. IPFS “is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.” With IPFS developers can easily store and retrieve data in the Dapp.
Truffle is the other widely used framework based on the Ethereum blockchain. It was founded by four guys one of which (John McDowell) lives close by in Victoria, BC. The number of developers downloaded the platform has spiked in recent months to just over 30,000 per month.
Truffle’s home page declares that their platform is the “Ethereum swiss army knife” and that its the “most popular development framework for Ethereum.” The documentation for Truffle is here.
Dapp describes their platform as a simple command tool for smart contract development. I’m not exactly sure how Dapp differentiates itself. I’ve noticed that Dapp points users to the Solidity language reference documentation so I’m sure its safe to say the Dapp platform allows developers to create Dapps from the ground up whereas a platform like BlockApps is more of a “wizard” like interface. In other words, if the use case requirements for your new blockchain system are quite granular then Dapp might allow your developers complete control over the build out.
Populus seems to be pretty much the same idea as Dapp however with more of a focus on the Python developer.
OpenZeppelin integrates with Truffle according to their GitHub page.
OpenZeppelin is a library for writing secure Smart Contracts on Ethereum. With OpenZeppelin, you can build distributed applications, protocols and organizations:
using common contract security patterns (See Onward with Ethereum Smart Contract Security)
in the Solidity language.
Not sure what else to say here but looking at the documentation I can safely say that most of this platform is going straight over my head. That being said the collaborating organizations and audits by OpenZeppelin seem quite impressive and include Truffle, Consensys, and Signatura.
Now this one appeals to me in terms of just getting started with blockchain as there’s a great deal of hand-holding with a platform like BlockApps. I think for folks just dipping their toes into the blockchain ocean this might be a good place to begin and get an understanding of what is possible. A number of larger organizations such as Microsoft and RedHat have been investigating blockchain with the help of BlockApps. According to the BlockApps site,
“STRATO, BlockApps’s flagship product, is a full-stack technology solution that
allows you to build industry-specific Blockchain applications on top of your own customized permissioned private, consortium (semi-private) ledgers, public Blockchain ledgers, or on the permission-less public Ethereum platform.”
Coco Framework (Microsoft)
The Coco Framework is fairly new and according to the GitHub site will be open-sourced in 2018. There’s a whitepaper available and essentially what Microsoft is trying to accomplish is a blockchain solution with the enterprise in mind.
Coco brings together the power of existing blockchain protocols, trusted execution environments, distributed systems, and cryptography to enable enterprise-ready blockchain networks that deliver:
Throughput and latency approaching database speeds.
Richer more flexible, business-specific confidentiality models.
Network policy management through distributed governance.
Support for non-deterministic transactions.
Reduced energy consumption.
ConsenSys is an incubator and venture capital organization that accelerates a number of startups in the decentralization space including:
- Balanc3 – a smart contract powered triple-entry accounting system.
- BoardRoom – a next-generation organization governance platform.
- Viant – a platform for modelling business processes, tracking assets and building the supply chains of the future.
As you can see the blockchain platform space is broad and relatively young in the application life cycle. I didn’t mean for this to be an exhaustive list by any means. This is simply my research notes to date. If you have any feedback it would be greatly appreciated.