This repository provides precompiled Fabric binaries (based on Fabric v2.1) for AArch64/ARM64 that were created as part of a project at Linköping University. They may contain issues and will not be maintained.
bin/
folder of the releases available here. Docker images are also available at https://hub.docker.com/u/busan15.The binaries are distributed with a copy of https://github.com/hyperledger/fabric-samples that has been modified to use the ARM docker images.
There are also a set of patch files in this repository that contains the changes made to the source code of fabric, fabric-baseimage, and fabric-ca to make these compile on ARM They likely have to be applied to the exact commit they were made for to avoid conflicts though.
These are:
To apply these changes and also update to a later version, you could probably (for each of these three) clone the repository, checkout the commit specified above, apply the corresponding patch with git apply <patch file>
, commit or stash the changes, and then update with git pull
. This might cause conflicts, so if you are happy with an older version you could also stop after applying the patches and compile from there.
Using the binaries and modified fabric-samples provided here, getting Fabric to run on a Raspberry Pi or other AArch64-powered systems can be done using the following steps:
sudo apt install golang docker-compose
.sudo usermod -aG docker ubuntu
followed by logging out and back in againdocker pull busan15/fabric-baseos:2.1
and tag it with docker tag busan15/fabric-baseos:2.1 hyperledger/fabric-baseos:2.1
to force the use of the arm64 image.cd fabric-samples/test-network
../network.sh up
../network.sh createChannel
../network.sh deployCC
. This command sometimes fails with the message Error: failed to endorse chaincode install: rpc error: code = Unavailable desc = transport is closing
, although the chaincode seems to be successfully deployed after rerunning the command a total of three times.[{"Key":"CAR0","Record":{"make":"Toyota" [...]
.export FABRIC_CFG_PATH=$PWD/../config/
, which uses the sample file provided with fabric-samples.