Skip to main content

setup hyperledger fabric on windows 10

What is the Hyperledger fabric?
Hyperledger Fabric is a business blockchain framework hosted by the Linux Foundation intended as a foundation for developing blockchain applications or solutions with a modular architecture. Hyperledger Fabric allows components such as consensus and membership services to be plug-and-play.
( From Google Search Result )

Though documents say that hyper ledger fabric works on the windows, I can't find it running in well. I tried hard to run it but failed. But I found another way to run the hyper ledger on windows with Linux subsystem which has been officially available in windows 10.

(Video Guide )


windows 10 Pro
Docker CE
Go 1.9

Basic Setup ( Step - 1 )

The first step to set up the hyperedge fabric on windows is to enable the Linux subsystem

1. Enable the Linux subsystem on your windows

Enable Linux SubSystem
Enable Linux SubSystem

2. Install your favourite Linux subsystem from the store ( i prefer ubuntu )

Add Ubuntu Linux Subsystem
Add Ubuntu Linux Subsystem

3. Install Docker
Install Docker
Install Docker

   ( Docker Requires Hyper-V to run so enable hyper-v )
   ( Afer installation reboot the system )

Configure Docker to work with Linux subsystem

Make the docker running
Start Docker
( Run the docker as Linux container)
Docker as Linux container
Docker as Linux container

If you get the not enough memory

Not Enough Memory error
Not Enough Memory error

error goto settings and change the settings to use fewer resources
( It will definitely start and if not then you have to add more ram to your system )

Update docker settings
Update docker settings

We need to expose the daemon to port 2375  in the setting.

Expose daemon to port 2375
Expose daemon to port 2375

Share the drive so we can mount that drive in our Linux subsystem to use it with the docker.

Share drive docker
Share drive docker

also, give them permission to drive to share

Share drive windows
Share drive windows

Setup the hyper ledger in the Linux subsystem

Now open the Linux subsystem and follow the steps

Ubuntu Linux subsystem
Ubuntu Linux subsystem

First of all check for the update

$ sudo apt-get update

update ubuntu
Update ubuntu

Install curl

$ sudo apt-get install curl

 Install Curl on ubuntu
Install Curl on ubuntu

we are going to use curl to fetch docker images from the server using the curl

install docker-compose to connect the docker we have installed on windows with the Linux subsystem
$ sudo apt install docker-compose

install node js and npm

$ sudo apt update
$ sudo apt install nodejs
$ sudo apt install npm

we have to mount the d drive to our Linux subsystem
There is a workaround for mounting /mnt/d to /d

if you drive has successfully mounted then you will be able to see the content of your drive in the ls command from the Linux subsystem.

Verify mounting of drive
Verify mounting of drive

Create a new folder in the drive which you want to use as your hyper ledger fabric workspace.
Create workspace
Create workspace

Move to the directory you have created and pull in the sample project from the GitHub there.

$ git clone

install the docker images of the hyper ledger fabric

curl -sSL | bash -s 1.0.5

You have successfully installed the hyper ledger fabric. You can test it using running any sample project provided there.

We will test using the First-network project

First of all, generate a sample network using

./byfn -m generate

Make the network up

./byfn -m up

Hope Find it useful,

If you need any help just comment. I will be happy to help


  1. Follow your each step but showing error:
    "ERROR! Local Fabric binary version of 1.0.5 does not match this newer version of BYFN and is unsupported. Either move to a later version of Fabric or checkout an earlie
    r version of fabric-samples."
    Will you please provide recent version

    1. Abhisek , I will make it update as soon as possible.

    2. This post is to show that you can do hyperledger fabrci development on windows. But, If you are developing somthing serious please don't use winodws. Instead go with liunux [ may be with virtulbox / vmware ]. Please see this post

  2. thank you, your info supplement the official doc

  3. Hi Manish,

    At last step i'm getting error "curl: (3) Host name ' bash' contains bad letter"

    can you please advise.


  4. That is very interesting; you are a very skilled blogger. I have shared your website in my social networks! A very nice guide. I will definitely follow these tips. Thank you for sharing such detailed article.

    Best Quoting Software


Post a Comment

Popular posts from this blog

Google blogger Ideas panel

Google blogger Ideas  I opened by blogger today, and..   I got this.  Google blogger Ideas  A panel suggesting a topic on which I can write my next blog. It's fetching unanswered question from web according to your previous post and topics. It was something, I was really looking for, after all it takes time to finding subject on which to write next and still being in the same niche.  Awesome feature Blogger! 

Apache : setup basic auth with apache in windows

Authentication is any process by which you verify that someone is who they claim they are. Authorization is any process by which someone is allowed to be where they want to go or to have information that they want to have. I will show here how to set up basic auth on the apache with windows. Pre-requests  Windows VPS Apache server ( That's it ) ( In windows it might be difficult to setup the Apache alone. So instead use something ling xampp , wamp or laragon .) RestClient (  I personally use the postman , but you can use your preferable client)  Windows VPS provider Steps  Enable the necessary modules in the Apache Create the password file Set the auth directives in the virtual host file. Verify basic auth. Enable the  necessary   modules  in the Apache Open the httpd.conf file in the apache's conf folder. httpd.conf file Enable the necessary modules to make the basic auth working. Necessary modules  mod_auth_basic

Firebase - update a spacific fields of single element of object of array in firestore

Firebase - update a spacific fields of single element of object of array in firestore  Its actully advisable to use map instead of array when ever it is possible. But, there are cetain cases where you don't have option to do so.  For example, you are directly saving the response from some outer source without any modification and they send you an array. In this case you will have array to work with. Firestore does not support array here is why  "bad things can happen if you have multiple clients all trying to update or delete array elements at specific indexes. In the past, Cloud Firestore addressed these issues by limiting what you can do with arrays " For more details information you can refer to Kato Richardson post Best Practices: Arrays in Firebase .  Firestore document having array [ used from stackoverflow question ] Suppose you have array of object something like shown in array. Now you want to update endTime field of the object on the index [1]