In the age of renewable energy, the need for efficient energy management systems is at an all-time high. A decentralized energy network, powered by blockchain technology, allows residents who produce energy from solar panels to sell their excess energy to neighbors in need. With Hyperledger Composer, we can create a robust application that enables this kind of innovative energy-sharing environment. This guide walks you through the implementation of this exciting project.
Prerequisites
Before diving into the application development, ensure you have the following prerequisites:
- Operating Systems: Ubuntu Linux 14.04 or 16.04 LTS (64-bit) or Mac OS 10.12
- Docker (Version 17.03 or higher)
- npm (v5.x)
- Node (version 8.9 or higher; version 9 is not supported)
- Hyperledger Composer
- Install composer CLI:
npm install -g composer-cli@0.20
- Install composer REST server:
npm install -g composer-rest-server@0.20
- Install generator-hyperledger-composer:
npm install -g generator-hyperledger-composer@0.20
- Install composer CLI:
Step-by-Step Setup Guide
Step 1: Clone the Repository
To get started, clone the Decentralized Energy Composer code locally. Run the following command in your terminal:
git clone https://github.com/IBM/Decentralized-Energy-Composer
cd Decentralized-Energy-Composer
Step 2: Setup Hyperledger Fabric
Next, you will need to set up the Hyperledger Fabric. Use the commands below to remove any existing containers and delete chaincode images:
docker kill $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images dev-* -q)
Set the fabric version to v1.2:
export FABRIC_VERSION=hlfv12
Start fabric and create peer admin card:
cd fabric-dev-servers
./downloadFabric.sh
./startFabric.sh
./createPeerAdminCard.sh
Step 3: Generate the Business Network Archive
Next, generate the Business Network Archive (BNA) file from the root directory:
cd ..
npm install
This command creates the file called decentralized-energy-network@0.1.15.bna
.
Step 4: Deploy to Hyperledger Fabric
To deploy the business network, first install the business network:
composer network install --card PeerAdmin@hlfv1 --archiveFile decentralized-energy-network@0.1.15.bna
Start the business network using the command:
composer network start --networkName decentralized-energy-network --networkVersion 0.1.15 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card
Import the network administrator identity:
composer card import --file networkadmin.card
Finally, check if the network has been deployed:
composer network ping --card admin@decentralized-energy-network
Step 5: Run the Application
Navigate to the angular-app folder and install dependencies:
cd angular-app
npm install
To start the application, use:
npm start
Your application should now be running at http://localhost:4200.
Step 6: Create Participants
Once the application is open, create participants (Residents, Banks, and Utility Companies) and input dummy data.
Step 7: Execute Transactions
Manually execute transactions between Residents, as well as between Residents and Banks or Utility Companies. Ensure that account values are updated accordingly.
Troubleshooting Guide
If you encounter any issues during setup, consider the following troubleshooting steps:
- Check the versions of Docker, npm, and Node to ensure compatibility.
- Ensure that all commands are run in the correct directory.
- If the network does not ping successfully, check if the Fabric services are running correctly.
- Refer to the Hyperledger Fabric Docs for additional guidance.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Extending the Code Pattern
This application showcases the foundational concept of a decentralized energy network using blockchain technology. Here are some ideas to expand this project:
- Add specific permissions and participant access controls.
- Implement real-time transactions among participants.
- Integrate IoT devices to monitor energy consumption and distribution.
Conclusion
At fxis.ai, we believe that such advancements are crucial for the future of AI and energy management, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.