Shim interface란?
- 하이저 패브릭 1.4에 Chaincode(Smart contract)를 실행시키기 위한 interface
- Ledger(원장)에 접근하여 데이터를 쓰거나 읽어오게 해주는 Interface
- Transcation이 왔을 경우 함수이름과 파라미터들을 Parsing해주는 역할도 진행한다.
ex) Getstate(), Putstate()
- 외부 라이브러리를 다운로드하면 Chaincode에 대한을 컴파일을 진행할 수 있다.
다운로드 하는법
터미널에 아래의 코드를 입력
. ~/.profile
go mod init [module로 사용할 이름]
- go get github.com/hyperledger/fabric/core/chaincode/shim@v1.4
하이저패브릭 최신버전인 2.2버전에는Shim interface가 따로 필요가없다.
기존 네트워크 확인 (모든 활성화 되고 있는 docker container들을 보여주는 명령어)
docker ps -a
기존 네트워크 종료(모든 예제를 시작하기 전에 미리 네트워크를 종료시키기고 진행하는 것이 효율적)
docker rm -f $(docker ps -aq)
docker rmi -f $(docker image dev-* -q)
docker network prune
basic network 구동
./start.sh(쉘 스크립트)가 실행하는 명령어
1. Docker 컨테이너가 존재할 수 있는 네트워크를 구축 명령어
2. 컨테이너들을 생성 후 네트워크에 연결 명령어
3. 채널 생성 후 Peer를 Join
배포/테스트 예제 코드(cli 컨테이너를 생성 후 활용)
docker-compose -f docker-compose.yml up -d cli
docker exec cli peer chaincode install -n fabcar -v 1.0 -p github.com/fabcar/go
docker exec cli peer chaincode instantiate -o orderer.example.com:7050 -n fabcar -v 1.0 -c '{"Args":[]}' -C mychannel -P "OR ('Org1MSP.member','Org12SP.member')"
docker exec cli peer chaincode invoke -o orderer.example.com:7050 -n fabcar -c '{"Args":["initLedger"]}' -C mychannel
docker exec cli peer chaincode query -n fabcar -c '{"Args":["queryAllCars"]}' -C mychannel
docker exec cli peer chaincode invoke -o orderer.example.com:7050 -n fabcar -c '{"Args":["createCar","CAR12","sm","sm3","red","shin"]}' -C mychannel
docker exec cli peer chaincode query -n fabcar -c '{"Args":["queryCar","CAR12"]}' -C mychannel
'BlockChain > ChainCode' 카테고리의 다른 글
하이퍼레저 패브릭1.4 vs 하이퍼레저 패브릭2.2 (0) | 2022.08.20 |
---|---|
ChainCode 작성을 위한 GO언어 설치법 (0) | 2022.07.28 |
Shim interface란?
- 하이저 패브릭 1.4에 Chaincode(Smart contract)를 실행시키기 위한 interface
- Ledger(원장)에 접근하여 데이터를 쓰거나 읽어오게 해주는 Interface
- Transcation이 왔을 경우 함수이름과 파라미터들을 Parsing해주는 역할도 진행한다.
ex) Getstate(), Putstate()
- 외부 라이브러리를 다운로드하면 Chaincode에 대한을 컴파일을 진행할 수 있다.
다운로드 하는법
터미널에 아래의 코드를 입력
. ~/.profile
go mod init [module로 사용할 이름]
- go get github.com/hyperledger/fabric/core/chaincode/shim@v1.4
하이저패브릭 최신버전인 2.2버전에는Shim interface가 따로 필요가없다.
기존 네트워크 확인 (모든 활성화 되고 있는 docker container들을 보여주는 명령어)
docker ps -a
기존 네트워크 종료(모든 예제를 시작하기 전에 미리 네트워크를 종료시키기고 진행하는 것이 효율적)
docker rm -f $(docker ps -aq)
docker rmi -f $(docker image dev-* -q)
docker network prune
basic network 구동
./start.sh(쉘 스크립트)가 실행하는 명령어
1. Docker 컨테이너가 존재할 수 있는 네트워크를 구축 명령어
2. 컨테이너들을 생성 후 네트워크에 연결 명령어
3. 채널 생성 후 Peer를 Join
배포/테스트 예제 코드(cli 컨테이너를 생성 후 활용)
docker-compose -f docker-compose.yml up -d cli
docker exec cli peer chaincode install -n fabcar -v 1.0 -p github.com/fabcar/go
docker exec cli peer chaincode instantiate -o orderer.example.com:7050 -n fabcar -v 1.0 -c '{"Args":[]}' -C mychannel -P "OR ('Org1MSP.member','Org12SP.member')"
docker exec cli peer chaincode invoke -o orderer.example.com:7050 -n fabcar -c '{"Args":["initLedger"]}' -C mychannel
docker exec cli peer chaincode query -n fabcar -c '{"Args":["queryAllCars"]}' -C mychannel
docker exec cli peer chaincode invoke -o orderer.example.com:7050 -n fabcar -c '{"Args":["createCar","CAR12","sm","sm3","red","shin"]}' -C mychannel
docker exec cli peer chaincode query -n fabcar -c '{"Args":["queryCar","CAR12"]}' -C mychannel
'BlockChain > ChainCode' 카테고리의 다른 글
하이퍼레저 패브릭1.4 vs 하이퍼레저 패브릭2.2 (0) | 2022.08.20 |
---|---|
ChainCode 작성을 위한 GO언어 설치법 (0) | 2022.07.28 |