# Essential Setup Remember to clone this repository! ```shell git clone https://github.com/hyperledger/fabric-samples.git fabric-samples cd fabric-samples/full-stack-asset-transfer-guide export WORKSHOP_PATH=$(pwd) ``` > to check the tools you already have `./check.sh` ## Option 1: Use local environment Do you want to configure your local environment with the workshop dependencies? - To develop an application and/or contract (first two parts of workshop) follow the *DEV* setup below - To deploy a chaincode to kubernetes in a production manner (third part of workshop) follow the *PROD* setup below ## Option 2: Use a Multipass Ubuntu image If you do not want to install dependencies on your local environment, you can use a Multipass Ubuntu image instead. Tip - You may need to stop any VPN client for the Multipass networking to work. - [Install multipass](https://multipass.run/install) - Launch the virtual machine and automatically install the workshop dependencies: ```shell multipass launch \ --name fabric-dev \ --disk 80G \ --cpus 8 \ --mem 8G \ --cloud-init infrastructure/multipass-cloud-config.yaml ``` - Mount the local workshop to your multipass vm: ```shell multipass mount $PWD fabric-dev:/home/ubuntu/full-stack-asset-transfer-guide ``` - Open a shell on the virtual machine: ```shell multipass shell fabric-dev ``` Tip - The vm creation log can be seen at /var/log/cloud-init-output.log if you need to troubleshoot anything. - You are now inside the virtual machine. cd to the workshop directory: ```shell cd full-stack-asset-transfer-guide ``` - Install Fabric peer CLI and set environment variables ```shell curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh ./install-fabric.sh binary export WORKSHOP_PATH=$(pwd) export PATH=${WORKSHOP_PATH}/bin:$PATH export FABRIC_CFG_PATH=${WORKSHOP_PATH}/config ``` Note - You'll probably want three terminal windows for running the workshop, go ahead and open the shells now: ```shell multipass shell fabric-dev ``` - Eventual cleanup - To remove the multipass image when you are done with it after the workshop: ```shell multipass delete fabric-dev multipass purge multipass list ``` ## DEV - Required Tools You will need a set of tools to assist with chaincode and application development. We'll assume you are developing in Node for this workshop, but you could also develop in Java or Go by installing the respective compilers. - [docker engine](https://docs.docker.com/engine/install/) - [just](https://github.com/casey/just#installation) to run all the commands here directly - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating) to install node and npm ```shell curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash ``` - [node v16 and npm](https://github.com/nvm-sh/nvm#usage) to run node chaincode and applications ```shell nvm install 16 ``` - [typescript](https://www.typescriptlang.org/download) to compile typescript chaincode and applications to node ```shell npm install -g typescript ``` - [weft ](https://www.npmjs.com/package/@hyperledger-labs/weft) Hyperledger-Labs cli to work with identities and chaincode packages ```shell npm install -g @hyperledger-labs/weft ``` - [jq](https://stedolan.github.io/jq/) jq JSON command-line processor ```shell sudo apt-get update && sudo apt-get install -y jq ``` - Fabric peer CLI ```shell curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- binary export WORKSHOP_PATH=$(pwd) export PATH=${WORKSHOP_PATH}/bin:$PATH export FABRIC_CFG_PATH=${WORKSHOP_PATH}/config ``` ## PROD - Required Tools for Kubernetes Deployment - [kubectl](https://kubernetes.io/docs/tasks/tools/) - [jq](https://stedolan.github.io/jq/) - [just](https://github.com/casey/just#installation) to run all the comamnds here directly - [kind](https://kind.sigs.k8s.io/) if you want to create a cluster locally, see below for other options - [k9s](https://k9scli.io) (recommended, but not essential) ### Beta Ansible Playbooks The v2.0.0-beta Ansible Collection for Hyperledger Fabric is required for Kubernetes deployment. This isn't yet being published to DockerHub but is being published to Github Packages. For reference check the latest version of [ofs-ansible](https://github.com/IBM-Blockchain/ansible-collection/pkgs/container/ofs-ansibe) The Ansible scripts in the workshop are set to use the latest image here by default.