Inspiration

Blockchain is an emerging technology for parties to transact with trust in a trust-less environment. The guarantees of authenticity, availability and accountability makes it a suitable technology to be adopted to make the market more efficient and improve value across trade. According to marketwatch.com, Global BlockChain technology market is expected to grow at the compound annual growth rate of about 51% from 2016 to 2022 and will cross USD 2 billion revenue by 2022. 1. There is a market various industries such as in finance to provide settlement and risk mitigation services by using blockchain as a brokerage of trust, in energy to control carbon emissions by providing transparency and auditability in the carbon emission reduction market to help stakeholders address regulatory requirements and healthcare to exchange owner mediated data from several sources such as Electronic Medical Records, clinical trials, genomic data and health data. 2

Hyperledger brings a solution.

What it does

By the Linux Foundation, Hyperledger is an open source collaborative effort created to advance cross-industry blockchain technologies. It is a global collaboration, including leaders in finance, banking, IoT, supply chain, manufacturing and technology. Developed to be enterprise-grade, Hyperledger Frameworks has been contributed by companies such as IBM, Intel and is used in various industries leader such as mobility tech giants like Airbus and Daimler, IT-companies like IBM, Fujitsu, SAP, Huawei, Nokia, Intel and Samsung, financial institutions like Deutsche Börse, American Express, J.P. Morgan, BBVA, BNP Paribas and Well Fargo, as well as Blockchain startups like Blockstream, Netki, Lykke, Factom, bloq and Consensys.

Hyperledger Sawtooth is a framework developed by Intel that uses a new consensus algorithm called Proof of Elased Time (PoeT) to build to blockchain. Hypeledger Sawtooth makes it easy to develop and deploy an application by providing a clear separation between the application level and the core system level. Sawtooth also provides a REST API and SDKs in several languages - including Python, C++, Go, Java, JavaScript and Rust. In addition, smart contracts can be written in Solidity for use with the Seth transaction family. 3

What I Contributed

I familiarized with the contributing pattern and the codebase and with the mentors (Zac Delventhal, Matt Mariutto, Rob Miroballi), I manage to set up the development environment and resolved 2/3 issues. They are listed below:

  • [#STL-1231] Add method for creating private key from hex to signing contexts
  • [# STL-512] Ensure REST API works properly behind a Digest Auth proxy
  • [# STL-513] Write Integration Test for REST API behind Digest Auth proxy

#STL-1231 has been approved by 1 out of 2 required reviewers and #STL-512 and #STL-513 is currently under review here

Challenges I ran into

Docker is heavily used to run the blockchain and carry out unit and integration tests. I had trouble understanding how docker does things but by the end of the hackathon, I managed to write code and test cases to integrate it with the code base.

I had problems in setting up the container-ized apache server for the digest Auth proxy and had to dig deep into the apache docs to find out what variables to set. I was constantly reminded by the importance of reading carefully and to trace error logs to debug. This is also a rare opportunity where I work with a codebase with such a huge market share and relevance globally.

Understanding digital signing and asymmetric key encryption for the blockchain signing protocol. Feature #STL-1231 required me to extend the PrivateKey abstract base class and I had to implement it in accordance to the requirements and document it well.

Accomplishments that I'm proud of

Getting 2-3 pull requests in, out of which 1 have 1 approval! I think being able to get some contributions in after 2 days of hacking is a good start to set me on a journey to be a regular contributor. I believe one of my hurdles in open source is to stay motivated and find the time to keep contributing, and the initial hurdle of understand the basic architecture and PR pattern will make it easier to work on future issues.

I also am really happy to get to know the 3 mentors of hyperledger better. The communiy is one of the most important in a sustainable open source project and am happy I am able to plug myself in.

What I learned

  1. Open Source work is challenging
  2. Open Source keeps your software development skills sharpened
  3. The Conjurer and Scribe Paradigm
  4. A slow and steady process
    • Incremental changes vs a #live-fast-die-young approach
  5. Never underestimate documentation
  6. Open Source work is impactful

What's next for Hyperledger/sawtooth

  1. Stay plugged into the community @ rocketchat
  2. Experiment with using the product
  3. Continue working with issues
    • [#STL - 1239] Encrypt data at rest
    • [#STL - 514] Add Digest Auth support to the Sawtooth CLI
    • [#STL - 515] Add Digest Auth support to the Intkey CLI
    • [#STL - 516] Add Digest Auth support to the XO CLI
Share this project:

Updates