Getting to know Oracle Autonomous Blockchain Cloud Service — Part 1 —Working with Provisioning Interface

Andre Boaventura
Oracle Developers
Published in
10 min readJun 4, 2018

Oracle’s Strategy for Blockchain

Oracle understands that a wider Blockchain adoption requires a platform given many use cases that are emerging requiring flexibility and agility to explore without standing up new infrastructure for each one of them. Also, ease of provisioning and usage-based consumption for rapid provisioning to be productive in just minutes, with pre-integrated technologies and pre-assembled infrastructure services, are other characteristics being pursued by customers and partners looking for implementing this sort of technology. Additionally, common enterprise-grade requirement must be proven once and re-used such as: Resilience, High Availability, Scalability, Supportability, Management, security, etc. Moreover, we could not forget to mention that operation environments with best practices for monitoring in an autonomous fashion way, with troubleshooting capabilities and common integrations with known platforms such as Open Banking platform, ERPs, SaaS applications, etc, are more than necessary for a successful Blockchain adoption and implementation.

Therefore, Oracle has decided to build Oracle Autonomous Blockchain Cloud Service (aka OABCS). It is an offering that is part of Oracle’s comprehensive Cloud Platform(PaaS) portfolio, delivered by the world’s most scalable, distributed transaction processing platform provider. Thus, OABCS is the most comprehensive and scalable distributed ledger cloud platform, since Oracle is offering a fully managed cloud service, where customers does not need to worry about resilience and scaling issues since we have added resilience capabilities and an enterprise-grade experience on top of the open source Hyperledger fabric core, by building in mechanisms such as continuous ledger state backups, node restarts, autonomous recovering and monitoring among other features that makes Oracle Autonomous Blockchain Cloud Service a really powerful platform for running Blockchain businesses, that is capable of delivering any requisites for a successful customer adoption, since it brings all the capabilities for customers to accelerate revenue, create new revenue streams, and reduce cost and risk by securely extending their business applications and processes while speeding up transactions across their ecosystem.

That said, this enterprise-grade blockchain solution enables customers to deliver business results faster, drive innovation by speeding up existing business processes with trusted, real-time information shared across existing ERP or SaaS systems, reduce risk, complexity, and increase efficiency by securely automating cross-organization transactions and providing reliable sharing of information and also accelerate time to market by providing a REST API-driven platform with rich integration options in Oracle Cloud Platform, which allows developing blockchain applications within minutes without complex setup and provisioning. These are some of the top benefits that Oracle Autonomous Blockchain Cloud Service brings to customers, developers and the partner ecosystem, however much more benefits can be achieved by leveraging this powerful solution.

Objectives

This is a comprehensive workshop designed to provide you with key concepts of Blockchain, Hyperledger fabric and Oracle Autonomous Blockchain Cloud services. It is a 3-lessons series comprised of individual exercises that allow you to get first hands-on exposure working with Oracle Autonomous Blockchain Cloud service using a cloud environment, where you will see how key features and functionality are used and deployed in this Oracle PaaS solution.

The following are the key objectives for you after finishing Part 1, 2, and 3 of all lab lessons:

  • Become familiar with Oracle Autonomous Blockchain Cloud Service(OABCS), it’s underlying technology and unique differentiators
  • Understand how and when to apply Blockchain in enterprise
  • Understand OABCS Architecture (Oracle Cloud, Hyperledger Fabric, Oracle Enhancements)
  • Become Familiar with OABCS Provisioning and Administration
  • Using Operations Console for Admin tasks and Monitoring
  • Learn How to Develop and Deploy Smart Contracts in OABCS
  • Learn How to integrate with external applications by leveraging OABCS REST Proxy
  • Create and operate your own multi-organization Blockchain network or consortium

USING OABCS PROVISIONING UI

First step is to access provisioning console from the following URL http://<yourOABCSHostIP>:3000

Sign in to provision console

When prompted to login enter any combination of userid and password, since there’s no authentication enforcement enabled in this version. However, if you subsequently return to the UI, please make sure you are using the same credentials that were used initially to create a OABCS environment to access your saved configuration, otherwise you won’t be able to access the Network/Organization configuration you might have done previously. For the sake of ease, for this lab we will be logging in as admin/admin.

Figure 1 — Creating user for the provision console

After logging in the provisioning UI, note the two options highlighted in the screenshot below:

Figure 2 — Provision Console first access

Create Block Chain Network: this creates an Organization and all components required to run a fully fledged blockchain network, including an ordering service. The organization you specify will be the Founding member of the network. Note that when using this option you need to choose the type of ordering service you want:

  • Solo (single server enforcing default orderer)
  • Kafka-based (cluster of orderers using Kafka event streaming to achieve consensus on order of transactions in a block.) Note that with Kafka ordering service, initial provisioning takes a little longer.

Create Block Chain Organization: this creates an Organization and blockchain nodes, such as peers, membership service, and REST proxy which can be used to join a blockchain network created by a Founding member.

In other words, you need to create at least one Network, which will include a Founding Organization. Then you can optionally create one or more Organizations, representing separate OABCS instances, which can join a Founding member’s network. The process for joining new Organization to a Network will be described later on Lesson #5.

So, let’s get started and create our first Blockchain Network by leveraging the provision console.

Create your first Blockchain Network as the following table:

Table 1 — Building your first Blockchain Network

After all, your OABCS provision console should look like the picture below:

Figure 3 — Creating your first Blockchain network

Hit the Apply button to create your network:

Figure 4 — Organization List

As such, you should see your Organization List updated as the picture above. This has provisioned all of the Blockchain network components, including membership service, peers, ordering service, REST proxy, and OABCS Console service. After completing this step, you can now access OABCS console by clicking the organization name in blue in the “Organization List” table (E.g.: Boaventura in this example).

Accessing and Controlling the Blockchain Network Instance:

When returning to the OABCS provision console, after logging in, you can use the table as per picture below to access the admin console of any of the previously created instances by clicking on its name or to start/stop/remove the instance by right-clicking on its row and selecting it from the menu.

Figure 5 — Controlling the Blockchain Instance

Note that Stop option shuts down all containers related to that instance, but the network configuration remains and can be re-activated using Start. Stop & Clean shuts down the containers and also removes all added channels and installed chaincodes. When you bring it back up with Start, you would need to re-create the channels, then install and instantiate chaincodes. Finally, Remove option completely removes the configuration for that organization (and if founding organization, the associated network).

Figure 6 — OABCS Console — Welcome Page

The Oracle Autonomous Blockchain Cloud Service console that you just provisioned by creating your first Blockchain network(Boaventura in this lab), helps you perform daily management tasks for your just created blockchain network. When you provisioned your Blockchain Cloud Service instance, all of the capabilities you need to begin work were added to the console. You can use the console to perform tasks such as managing nodes, configuring network channels and policies, and deploy and instantiate chaincodes. You can also monitor and troubleshoot the network, view node status, view ledger blocks, and find and view log files. Each organization in your network has its own console that they use to manage their organization and monitor the blockchain networks that they are included in. Your role in the network (founder or member) determines the tasks you can do in your console.

The Dashboard tab shows the health status of the network (100% means all components are up), transaction execution metrics, and summary ledger metrics. You can use the Dashboard tab for an overview of the your network’s performance. On the Dashboard tab, you’ll find:

  • A banner showing you how many different components are on your network. For example, how many channels and chaincodes.
  • Transaction execution and activity information for a specific time range.
  • The number and percentage of nodes that are running or stopped.
  • Ledger information, such as transaction activities and invocations.
Figure 7 — OABCS Console — Network tab

The Network tab is where you view a list of the organizations in your network. The first time you use the Network tab after setting up your Blockchain Cloud Service instance, you’ll see the organization you created during set up. You can use the Network tab to:

  • Find the names of the organizations in your network, their Membership Service Provider (MSP) IDs, and roles.
  • Add an organization to the network.

See a graphical representation of the network’s structure.

Figure 8 — OABCS Console — Network tab — Topology View
Figure 9 — OABCS Console — Nodes tab

The Nodes tab lists all the components of the Fabric network, including peers, orderers, CAs, and REST Proxies. It provides operational controls to start/stop/restart nodes, edit their properties, and add new nodes. During instance provisioning a default channel was created and all peers were added to it. Below you can find a topology view of nodes in your network.

Figure 10 — OABCS Console — Nodes tab — Topology View
Figure 11 — OABCS Console — Channels tab

A channel is a private “subnet” of communication between two or more specific network members, for the purpose of conducting private and confidential transactions. A channel is defined by members (organizations), anchor peers per member, the shared ledger, chaincode application(s) and the ordering service node(s). Each transaction on the network is executed on a channel, where each party must be authenticated and authorized to transact on that channel. Each peer that joins a channel, has its own identity given by a membership services provider (MSP), which authenticates each peer to its channel peers and services. Although peers can belong to multiple channels, the information on transactions, ledger state, and channel membership is restricted to peers within each channel.

Channels partition and isolate peers and ledger data to provide private and confidential transactions on the blockchain network.

Blockchain member organizations define and structure channels to allow specific peers to conduct private and confidential transactions that other members on the same blockchain network cannot see or access. Each channel includes peers, the shared ledger, chaincodes instantiated on the channel, and one or more ordering service nodes.

The Channels tab lists all the channels available, and provides access to each channels ledger, list of peers, and list of deployed (instantiated) chaincodes. It also provides a button to Upgrade Chaincode with a new version. The first time you use the Channels tab after setting up your Blockchain Cloud Service instance, you’ll see the default channel that was created and all of the peers in your network added to it. Use the Channels tab to:

  • Add new channels.
  • Upgrade instantiated chaincodes.
  • View a channel’s ledger activity.
Figure 12 — OABCS Console — Chaincodes tab

Note that OABCS refers to smart contracts as chaincodes. The Chaincodes tab lists the chaincodes installed on the network. The first time you use the Chaincodes tab after setting up your Blockchain Cloud Service instance, no chaincodes display in the list because no chaincodes were included during set up. You must add the needed chaincodes. You can use the Chaincodes tab to:

  • Find a chaincode’s version.
  • See which peers have the chaincode installed.
  • Install a chaincode on a peer and instantiate it on a channel.
  • See which channel a chaincode was instantiated on.

Conclusion

If you’ve made it this far, then congratulations! There is still so much more to explain about the OABCS, but at least now you have an idea of the key functionalities that will allow you to work with the the so awaited Blockchain offering of Oracle.

Next section(Part 2) will teach you how to explore the OABCS operations using the Chaincode Samples provided with the product.

Please clap on this article if it has helped you to understand a bit about blockchain, Hyperledger Fabric & Oracle Autonomous Blockchain Cloud Service. And please leave a comment and state your feedback. This is very important to help me keep writing new articles about this sort of content.

--

--

Andre Boaventura
Oracle Developers

Principal Solutions Architect driving Cloud, AppDev, Serverless, Mobile, Chatbot, AI/ML, Container & Cloud Native technologies @AWS