Hyperledger Fabric Fundamentals (LFD271)

In this course you’ll learn:

  • How business logic is implemented in Hyperledger Fabric through chaincode (Hyperledger Fabric’s smart contracts)
  • How to review the various transaction types used to read from and write to the distributed ledger
  • How your applications can invoke transactions using the Hyperledger Fabric Javascript SDK.

This course is designed to be vendor- and distribution-neutral, so you will be able to apply these concepts universally.

You will have access to the course for a full year from the date of purchase (or availability, for preorders), regardless of how quickly you complete the course. You can expect the course to take 30-35 hours to complete (although the course is self-paced, so you can move as quickly or as slowly as you like).

Related:

  • No Related Posts

Hyperledger Composer has been put on pause, what are your options now?

Pretty recently the team from Hyperledger Composer posted a relevant note for any software developer creating on top of Composer. Its content could be quite shocking for a lot people in the community, since the project has always proven to be so robust.

Basically what Simon outlines in the note, posted on August 30, 2018, is that even though a lot of efforts has been invested in the Composer project, they will mostly stop bringing new features to it. In synthesis the main reasons are regarding its growing architecture and the difficulties to maintain it. According to the note, they will focus more on bringing more features straight to Fabric (which is great for all of us!).

“The IBM team will continue to update Composer to maintain compatibility with the latest Fabric v1.x releases, and we will fix any high priority bugs — but certainly for the time being, we will not be looking at delivering any major new features into Composer.”

As a software developer getting into Hyperledger, you may find it overwhelming to hop in into the ecosystem. There are lots of things to learn and a tool like Composer made it really easier for all of us to create POCs for Hyperledger Fabric. Yet, like a lot of people, we also noticed a few downsides on their architecture. Having to chose between “native” Fabric or Composer really pushed us (and a lot of developers) to reduce dependencies and get into native Fabric when going into production, while using Composer only for proof of concepts.

Internally a few months ago, while creating our own development framework, we learnt a lot from Composer’s limitations and created Convector, a nimble smart contracts system framework, initially supporting Hyperledger Fabric.

A few weeks ago we made it open source. At WorldSibu we understand the needs of the developer community (since we are developers ourselves), and our desire to give back to the community made it clear to make the decision. You can read more about it here.

Our vision for Convector is similar to the one that the Composer project had, to support multiple blockchain technologies, but our approach is different, componentized by default.

Your options from now own

Hyperledger Fabric supports chaincodes (smart contracts) written in Go and Node.js. That has always been the option for people choosing to go “native” with Fabric. From our experience, developing in Go if you are not at an expert, can get out of control quickly, you end up creating a lot of helpers and validators to translate data, reusable functions that carry its respective cost of risks, and if you have the rest of your stack in another language, it gets really hard to integrate it (CI/CD/Testing).

If you choose to go with Node.js and you already know JavaScript (or similar languages in terms of syntax like Java, C#, C++) it gets way easier. But still, you have to fight a lot of the common downsides of a flexible technology like JavaScript, its so flexible that you can get it wrong really fast.

As I was telling before, we found ourselves creating native Fabric solutions and during the maturity of our development experience, we conceptualized and developed Convector. It may be helpful in case you decide to go with Node.js as your development language option. It embraces a Model/Controller pattern, making it easier to bring business concepts without adding extra layers to your code. It’s still your same code that runs in the blockchain. You still develop natively.

If you find yourself looking to create smart contract systems, Convector may support you on your development experience. Here are some links:

An example on how to create a “model” directly in your own code.

Its approach is to support a fullstack JavaScript solution, without adding extra components, what it does is to extend your code while bringing a ecosystem of tools like development environment setup and testing mocks.

A part of the note mentions that they could not get as much support of the community as they desired, and we also believe that community support (bug reports, enhancements, documentation) is key for Convector. We’d love to get support from the community to make Convector the standard in smart contract systems development. Our vision is for it to enable a Software Developer to create once, and deploy anywhere (any blockchain platform). To contribute here are some guidelines. You can also join the Discord Community for Convector here.

Related:

  • No Related Posts

Hyperledger: Open Source Blockchain Project, Frameworks & Tools from the Linux Foundation

Hyperledger is a Linux Foundation open-source project that offers a diverse toolset and suite of frameworks and projects for developers and businesses to build and experiment with blockchain networks.

The objective of the Hyperledger Project is to facilitate the collaboration between businesses, developers, and other enterprises in the field of distributed ledger technology. There are currently more than 250 organizations supporting Hyperledger, and that number is snowballing.

What is Hyperledger

Hyperledger has become one of the go-to tools and environments for interested parties to learn more about blockchain technology and participate in a dynamic community.

Background

The Hyperledger Project was announced in December 2015 by the Linux Foundation as an open-source environment for analyzing, building, experimenting, and collaborating on the development of distributed ledger systems. The Linux Foundation has achieved some significant accomplishments since its inception in 2000, and the founding of the Hyperledger Project helped to attract some major participants including Blockstream, IBM, Oracle, Cisco, RedHat, Accenture, and more. You can find a complete list of the member organizations and other project participants here.

Notably, Hyperledger focuses primarily on building distributed ledger solutions for permissioned blockchains and consortium networks; however, its gaining popularity and profile among large tech and financial players has undoubtedly given blockchain technology substantial exposure that it might not otherwise have.

Hyperledger Greenhouse

Frameworks and Tools

At its core, the Hyperledger Project is an umbrella project for modular open-source frameworks and tools for building and experimenting with blockchains. The overall trend for enterprises is towards open-source projects, according to a survey by BlackDuck and North Bridge in 2016. With blockchain technology emerging as one of the cutting-edge innovations in today’s technology sector, it seemed only natural that an open-source ecosystem for enterprises was conceived.

Hyperledger refers to its design as “The Greenhouse For Enterprise Blockchains” as it aims to be an incubator for developing practical applications and business solutions with blockchain tech.

Hyperledger aims to provide specific benefits for enterprises using their platform including:

  • Network for collaboration and real-time updates on significant developments
  • Better productivity through specialization
  • Collaborative environment
  • Better quality control of code
  • Easier handling of intellectual property

The Hyperledger Project is enormous and consists of more than 28,000 participants and 3.6 million lines of code. You can find the Hyperledger Github here. Hyperledger consists of 10 projects, including 5 frameworks and 5 tools. Each project is unique and contains a specific function and advantage for its use, with Hyperledger Fabric (framework) being the most popular.

When analyzing Hyperledger, there is a lot to look at and consider. Their website provides a wealth of resources on everything from open governance to event news. However, we can divide the overall project into primarily 2 sections:

  • Modular Frameworks
  • Modular Tools

Frameworks

The modular frameworks consist of the major building blocks and platforms for building a variety of distributed ledgers and their components.

Hyperledger Burrow

Burrow is a modular blockchain client with a permissioned smart contract engine. It is developed partly for the Ethereum Virtual Machine (EVM) and was originally developed and proposed by Monax.

Burrow is written in Go and heavily focuses on being a deterministic smart contract engine. It uses the Tendermint Proof-of-Stake BFT consensus engine and is capable of using its Application BlockChain Interface (ABCI).

Hyperledger Fabric

Fabric — also written in Go — is the most popular framework that is a modular platform for building distributed ledger solutions featuring pluggable components and a customizable architecture.

Fabric is known for its extensibility and allows enterprises to build distributed ledger networks on top of an established and successful architecture.

Hyperledger Indy

Indy is a distributed ledger built explicitly for decentralized identity management. The server portion Indy-node is built in Python, while the Indy-SDK is written in Rust.

Indy provides tools and reusable components for managing digital identity with blockchains and includes features such as self-sovereignty, privacy, and verifiable claims. The implications of Indy moving forward are huge as decentralized identity, and some high-profile projects, including Civic, are pursuing verifiable identity attestations.

Hyperledger Iroha

Iroha is the blockchain framework designed for incorporating infrastructure projects and places a heavy emphasis on facilitating the creation of applications tailored for end users.

Iroha is written in C++ and includes features such as an emphasis on mobile application development and a new chain-based BFT consensus algorithm called Sumeragi.

Hyperleder Sawtooth

Sawtooth is a modular platform for running distributed ledgers that enables several technical innovations for enterprises and consortiums to make independent decisions about their platforms.

Sawtooth-core is primarily written in Python while Sawtooth-raft and Sawtooth-sabre are written in Rust. Sawtooth also has JavaScript and Go components. Overall, some of the primary features of the framework include dynamic consensus, Proof of Elapsed Time (PoET) Consensus, parallel transaction execution, and private transactions.

Tools

The Hyperledger Tools are a diverse set of tools that can manage metrics and work in conjunction with the larger frameworks.

Hyperledger Caliper

Caliper is written in JavaScript and is a benchmark tool for measuring blockchain performance. It lists performance indicators such as Transactions Per Second (TPS), transaction latency, and resource utilization.

Caliper is a unique general tool in its format, and it has become a useful reference for enterprises to measure the performance of their distributed ledgers.

Hyperledger Cello

Cello is primarily written in Go and brings the on-demand deployment model to blockchains. It is an automated application for deploying and managing blockchains in the form of plug-and-play for enterprises looking to integrate distributed ledger technologies.

Cello also provides a real-time dashboard for blockchain statuses, system utilization, chain code performance, and configuration of blockchains. It currently supports the Hyperledger Fabric implementation.

Hyperledger Composer

Composer is written in JavaScript and is the most active tool concerning development activity. It is a tool for building blockchain business networks and is designed to accelerate the integration of blockchain applications and smart contracts with existing business models.

Composer also supports Hyperledger Fabric and users can utilize it to define how transactions interact with specific assets including property, services, and other non-fungible assets.

Hyperledger Explorer

Explorer is the tool that provides a dashboard for peering into details about blocks. Primarily written in JavaScipt, Explorer is a generic, web-based block explorer for the Hyperledger Fabric framework.

Explorer can also be integrated with authentication platforms and supports the Hyperledger Sawtooth framework with its TypeScript-based, Angular built iteration.

Hyperledger Quilt

Quilt is the interoperability tool between ledger systems and is written in Java by implementing the Interledger Protocol (ILP) for atomic swaps.

Quilt is an enterprise-grade implementation of the ILP and provides libraries and reference implementations of the core Interledger components used for payment networks. Eventually, it is supposed to become the interoperability solution for all of the Hyperledger Projects to transfer value with each other and perform distributed atomic swaps.

Applications

The potential applications of integrating with Hyperledger Projects and integrating their solutions are diverse and have significant ramifications for enterprises looking to leverage the power of blockchain tech.

Deloitte and PwC both recently released their 2018 Global Blockchain Reports detailing the current business sentiment surrounding the integration of the technology with executives in enterprises ranging from industries like financial services to healthcare. Both studies conclude with a positive note on the trend towards the adoption of the technology and executives across the world are aware of and looking into incorporating distributed ledger solutions.

The opportunities that Hyperledger afford these enterprises to experiment with and build business application solutions will assuredly not be overlooked as the platform continues to gain steam. Hyperledger outlines some excellent use cases explicitly for their projects including:

  • A Seafood Supply Chain Prototype Using Hyperledger Sawtooth
  • Managing Decentralized and Portable Identities With Hyperledger Indy
  • Healthcare Physician Credentialing With Hyperledger Indy
  • Post-Trade Financial Processing Using Hyperledger Fabric & Sawtooth

The future interoperability of blockchains along with the plug-and-play/experimental nature of Hyperledger will enable it to develop into a leading platform for collaboration in development and business applications of blockchain tech.

Hyperledger explicitly envisions some long-term trends and goals with their open-source platform in their white paper. Specifically, they see the trend towards increased data sharing as requiring the more prevalent use of distributed ledgers and their accompanying components to create a modular, secure, and interoperable framework for such developments.

Further, Hyperledger looks to expand on its array of interchangeable modules that can eventually communicate with each other and be deployed quickly. The platform will also transition from a single software stack to a collection of tools that supports a vast community of developers.

Conclusion

Hyperledger is a powerful and handy tool for enterprises to learn about and integrate distributed ledger technologies into their business models. Founded on the open-source principles of the Linux Foundation, it is poised to become one of the most dynamic communities and collaborative environments for developers in the blockchain sphere.

Related:

  • No Related Posts

StoreFront 3.5 upgrade to 3.15 fails with error ” Citrix StoreFront 3.15.0.18019 failed”

StoreFront Version 3.5 fails to upgrade to version 3.15, during the upgrade process the wizard displays the following message “Citrix StoreFront 3.15.0.18019 failed”

At the bottom of the upgrade wizard window, another message is displayed “NOTE: An error occurred during installation. Please ensure all the required prerequisites have been installed and run the installer again”

StorefrontError

The install logs in c:WindowsTempStoreFront eg. Citrix-DeliveryServicesSetupConsole-yyyy-mm-dd hh-mm-ss.log, show the following error:

Begin SnapshotConfiguration

Creating version snapshot for version ‘3.5.0.23’.

Loading backup history configuration

An error occurred creating the snapshot: ‘System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for citrix.deliveryservices/sessionManager: Could not load file or assembly ‘Citrix.DeliveryServices.Security.CitrixAuth.Configuration, Version=3.14.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856’ or one of its dependencies. The system cannot find the file specified. (C:inetpubwwwrootCitrixStoreweb.config line 48) —> System.IO.FileNotFoundException: Could not load file or assembly ‘Citrix.DeliveryServices.Security.CitrixAuth.Configuration, Version=3.14.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856’ or one of its dependencies. The system cannot find the file specified.

at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)

at System.Configuration.MgmtConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)

at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)

— End of inner exception stack trace —

at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)

at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)

at System.Configuration.ConfigurationSectionCollection.Get(String name)

at System.Configuration.ConfigurationSectionCollection.<GetEnumerator>d__0.MoveNext()

at Citrix.DeliveryServices.InstallController.Configuration.ConfigFileValidator.ReadSectionGroup(Configuration config, ConfigurationSectionGroup sectionGroup)

at Citrix.DeliveryServices.InstallController.Configuration.ConfigFileValidator.Validate()

at Citrix.DeliveryServices.InstallController.Configuration.VersionData.BackupConfigFile(IFeatureInstance instance, DirectoryInfo instanceBackup)

at Citrix.DeliveryServices.InstallController.Configuration.VersionData.BackupFeatureInstances()

at Citrix.DeliveryServices.InstallController.Configuration.VersionData.Create(Version version, String backupPath)

at Citrix.DeliveryServices.InstallController.ConfigurationController.CreateVersionSnapshot(Version version)’.

Exception thrown by custom action:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for citrix.deliveryservices/sessionManager: Could not load file or assembly ‘Citrix.DeliveryServices.Security.CitrixAuth.Configuration, Version=3.14.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856’ or one of its dependencies. The system cannot find the file specified. (C:inetpubwwwrootCitrixStoreweb.config line 48) —> System.IO.FileNotFoundException: Could not load file or assembly ‘Citrix.DeliveryServices.Security.CitrixAuth.Configuration, Version=3.14.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856’ or one of its dependencies. The system cannot find the file specified.

at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)

at System.Configuration.MgmtConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)

at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)

— End of inner exception stack trace —

Related:

  • No Related Posts