Personal Blockchain
A powerful tool tailored for Cardano developers to efficiently set up and oversee their individual Cardano environments throughout the entire development cycle, enabling seamless development, deployment, and testing of dApps.
High-level design system architecture: link
To run a local blockchain on your machine, follow these steps:
As described in the High-Level Design (HLD) documentation, we expose the services of the local blockchain network through the Controller Service. This service is responsible for managing the lifecycle of the local blockchain network you create. For more details, please refer to the Controller Service documentation: link.
You can use Docker to download the Controller service image. For example, to pull the image, use the following command:
docker pull chien28201/cardano-local-blockchain:latest
docker run -d \
-p 8888:8888 \
-p 3000:3000 \
-p 8090:8090 \
--env NODE_ENV=development \
--env BLOCKFROST=http://host.docker.internal:3000 \
--env CARDANO_WALLET=http://host.docker.internal:8090 \
--add-host "host.docker.internal:host-gateway" \
--privileged \
chien28201/cardano-local-blockchain:latestTo stop the service:
docker stop chien28201/cardano-local-blockchain
docker remove chien28201/cardano-local-blockchainAlternatively, you can use the Docker Compose configuration defined in our project. To do this, follow these steps:
- Navigate to the directory where the Personal Blockchain project is located:
cd /path/to/persional-blockchain-project- Run the Controller service using Docker Compose with the following command:
docker compose up -d- Stop service:
docker compose stopYou can also run the Controller service manually by following the guide at the link.
Currently, we allow customization of certain configurations for the local blockchain network. These configurations include:
- Epoch Size: The number of slots in one epoch.
- Slot Length: The duration of one slot.
- Tx Size: The maximum number of bytes per transaction.
You can initialize a blockchain cluster network using the following methods:
You can initialize a blockchain cluster by making an API call to the Controller service:
curl -X POST http://localhost:3000/workspace \
-d '{"epochLength": <epochSize>, "slotLength": <slotLength>, "txSize": <txSize>}' \
-H "Content-Type: application/json"To create a local blockchain network through the UI, first, follow the instructions to set up the UI service at link.
Once the UI service is running, you can create the local blockchain network through the following screen: UI Screenshot