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 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.
We will proceed with a single membership for now but instructions on how to add a new membership can be found at the bottom of this page for those who wish to mock out a multi-party network.
Creating an Environment
- 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: Standard Blockchain Service and FireFly Private Network Sandbox.
- Choose the FireFly Private Network Sandbox tile and then click NEXT.
- Ethereum and Hyperledger Fabric are currently the only supported blockchain protocols for FireFly environments.
- For the purpose of this walk-through, select 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 CREATE SUPERNODE button to begin setting up your first FireFly Supernode.
Configure your First Node
- First, choose a name and membership for your node.
- Your default membership is available for usage at this stage.
- In the below example
n1
is bound toSample Organization
membership (default). - Click NEXT.
- Next, you will map your FireFly Node to a new or existing blockchain node and a new or existing ipfs runtime.
- Given the context of this quick start, we will create a new element for each.
- Click NEXT.
- Currently only 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 a member-owned blockchain node, a member-owned IPFS node and a system monitor node during this step.
Deploy your FireFly Contract
- When all three runtimes transition to a
Started
state and the Initialize button appears next to the FireFly Node you have created, click INITIALIZE.
- Now you will need to select the signing identity for the Firefly Node you have created.
- For this quick start, keep the default value which defaults to your own signing account.
Behind the scenes Kaleido is generating you an application namespace, compiling the core FireFly smart contract (since FireFly requires a deployed Smart Contract to sync activity to the chain) and promoting the source to your newly created FireFly environment.
- Click INITIALIZE.
- This process may take upwards of a minute.
- If the FireFly node is successfully initialized, you'll see an environment overview screen with all runtimes in a Started state.
Creating a Multi-Party Network
- For those interested in creating a multi-party network, you can do so by adding a new membership and deploying a second FireFly Node.
- Navigate to GOVERNANCE then click MEMBERSHIPS.
- Click ADD MEMBERSHIP in the top right and enter the name of your second membership.
- Click ADD and you should see your new membership appear as a block.
- In the ENVIRONMENT tab, navigate to DASHBOARD and select CREATE NEW under FireFly Nodes.
- In the first prompt, select the name of the new membership.
- In the second prompt, create a name for a new FireFly node.
In the below example, 'n2' is tied to the 'Sample Organization 2' membership.
- In the resulting prompts, create names for a new blockchain node and a new ipfs runtime.
- Remain on the small tile and click FINISH.
- Wait for the Initialize button to appear next to the FireFly Node you have created, then click INITIALIZE.
- Follow the previous listed steps to INITIALIZE your second FireFly node.
- Once completed, your environment is now ready for use as a standard blockchain environment or as a FireFly multiparty system.