Create your new FireFly system
Now that you've created an account and established your business organization, let's go ahead and build out your first business network and underlying blockchain. Kaleido supports Enterprise Ethereum, Corda and Hyperledger Fabric as standard blockchain protocol providers, as well as a multi-party orchestration framework called FireFly. Regardless of your environment/protocol choice, the first step is to establish a business network that will serve as the parental resource for blockchain environments and the various runtimes within.
Create a Business Network
- Visit https://console.kaleido.io and enter your organizational email + password to login.
- Click the Create Network button in the middle of the page.
- Provide a name for your business network and optionally include some legalese or rhetoric describing your network mission. Click NEXT.
- Select a cloud provider and underlying region to serve as the home region for your network. This will, in turn, whitelist the selected cloud provider and underlying region, and is where your resources will be hosted on the Starter Plan. The choices are AWS US East, AWS EU Central, AWS APAC Southeast, AWS APAC Northeast, Microsoft Azure US West, and Microsoft Azure France. Click NEXT.
- Note that multi-region consortium are not available on the Starter Plan. If you wish to enable multi-region capabilities, refer to the Manage Plan section for instructions on upgrading your subscription. Click Finish to finalize your consortium.
- At this point, your business network is simply a namespace with an underlying home region, a name, and your Kaleido organization existing as the sole membership.
In the lefthand navigation menu, click the Governance tab and then Memberships to see the existing memberships in your business network. As the founder, your organization is automatically attributed to the first membership in the network. You can add additional memberships by clicking the ADD MEMBERSHIP button under your current memberships. Any subsequent memberships will be bound to your organization.
Memberships are the Kaleido resource that is bound to nodes, services, and security credentials. Adding additional memberships is a useful technique for networks where resources need to be proxy operated, or in scenarios where an operator wishes to mock out the future participation of a decentralized network. For this quick start, we will proceed with a single membership.
- Switch back to your business network home page by clicking the Dashboard tab in the lefthand navigation menu.
- Next, click the Create Environment button to generate your first blockchain namespace. An environment in Kaleido is an isolated domain with nodes, services, and security credentials confined solely to it. Each environment is its own unique blockchain.
Choosing an Environment Type
- Kaleido offers two top-level environment types: Multi-Party System (aka FireFly) and Standard Blockchain Service.
- Choose the Multi-Party System tile and then click NEXT.
- Ethereum is currently the only supported blockchain protocol for FireFly environments.
- Remain on the Ethereum tile and click NEXT.
Creating a FireFly Environment
- Provide a name for your environment (e.g.,
Development) and click NEXT.
Note that the Deployment Region is automatically inherited from your business network configuration.
- Next, choose your underlying Ethereum blockchain client and an associated algorithm.
- The choices are Geth/PoA, Quorum/IBFT, Quorum/Raft, Besu/PoA and Besu/IBFT. We recommend a simple Geth/PoA configuration.
- Choose your desired Ethereum configuration and click FINISH.
Deploy your FireFly Resources
- At this point your FireFly environment is simply an empty namespace containing your Ethereum configuration.
- Click the GET STARTED button to begin deploying resources.
Configure your Nodes
- The current experience supports the deployment of two FireFly nodes.
- Choose a name and membership for each node.
- Your default membership is available for usage, however you can also create a second unique membership to more closely mimic a decentralized network.
- In the below example
n1is bound to
Company ABCmembership (default) and
n2is bound to
Company XYZ(a newly created membership).
- Click NEXT.
- Currently on small sized FireFly nodes are available.
- Remain on the small tile and click FINISH.
- Be patient here. The various runtimes need time to initialize and properly start, so this may take upwards of a minute.
- In total you are spinning up two member-owned blockchain nodes, two member-owned IPFS nodes and a system monitor node during this step.
- When all five runtimes transition to a
Startedstate, click the INITIALIZE FIREFLY button in the upper right of your screen.
Deploy your FireFly Contract
- FireFly requires a deployed Smart Contract to sync activity to the chain. During this step, Kaleido will import the latest FireFly contract from the open source Github repository and compile it for use in your new environment.
- Click NEXT at the bottom of this panel.
- Give this process a few seconds to complete. Behind the scenes Kaleido is generating you an application namespace, compiling the core FireFly smart contract and promoting the source to your newly created FireFly environment.
- Once the contract is successfully promoted click the INITIALIZE FIREFLY INSTANCES button.
This will deploy the contract to your environment and initialize each FireFly node with the deployed instance's address and each blockchain node's identity.
- Again, be patient here. This process may take upwards of a minute.
- If each FireFly node is successfully initialized, you'll see an environment overview screen with all runtimes in a
- Your environment is now ready for use as a standard blockchain environment or as a FireFly multiparty system.