'블록체인/HyperLedger'에 해당되는 글 5건

  1. 2020.04.16 test-network Setup 정보
  2. 2020.04.10 springboot + hyperledger fabric
  3. 2020.04.10 CA(Certificate Authority)
  4. 2019.02.15 하이퍼레저 fabcar 웹테스트 예제
  5. 2019.02.06 하이퍼레저의 특성

 

기본적으로 설치해서  fabric-samples/fabcar/startFabric.sh 를 하면

 

/network.sh up createChannel -ca -s couchdb 로 실행이 된다,.

 

이 때

./organizations/peerOrganizations 를 참조하면서. (아래 3개 파일 이용)

    org1.example.com/fabric-ca-client-config.yaml*
    org1.example.com/connection-org1.json
    org1.example.com/connection-org1.yaml

 

 

노드1, 노드2를 물리적으로 분리할 경우 (https://www.slideshare.net/hlkug/201903-hyperledger-fabric)

<노드 1>
- 채널생성 (peer channel create),

- 채널Join  (peer channel join),

- Anchor Peer 업데이트 (peer channel update)

- 체인코드 설치(peer chaincode install),

- 체인코드 Instantiate(peer chaincode instantiate),

- 체인코드 Query(peer chaincode query)

<노드 2>

- 제네시스 Block Fetch (peer channel fetch 0...)

- 채널Join  (peer channel join),

- Anchor Peer 업데이트 (peer channel update) 

- 체인코드 설치(peer chaincode install),

- 체인코드 Query(peer chaincode query)

 

 

개인이 만든 fabric-starter.git 참고 (https://www.altoros.com/blog/deploying-a-multi-node-hyperledger-fabric-network-in-5-steps/ ) - 테스트 필요.

Posted by yongary
,

 

<spring 에서 fabric G/W를 이용한 컨트랙트 실행>

implementation 'org.hyperledger.fabric:fabric-gateway-java:2.0.0'  추가 후 아래소스 참조.

https://hyperledger.github.io/fabric-gateway-java/

 

 

 

<유저 생성 후 실행 example>

https://newtechstax.com/2019/11/12/integrating-fabric-blockchain-with-springboot-application/

Posted by yongary
,

CA는

- ID를 등록하고 LDAP과 연결해서 사용자 등록수행

- ECert 발행 (Enrollment Certi)

- Certi 갱신과 철회

 

CA_server와  CA_client로 구성.

<CA server>

$fabric-ca-server start -b <admin>:<adminpw>

 

<CA client>

$export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin 
$fabric-ca-client register --id.name admin2 --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,admin=true:ecert'

 

 

 

<참고 사이트>

https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/users-guide.html

 

Fabric CA User’s Guide — hyperledger-fabric-cadocs master documentation

This section describes how to configure the Fabric CA server to connect to PostgreSQL or MySQL databases. The default database is SQLite and the default database file is fabric-ca-server.db in the Fabric CA server’s home directory. If you don’t care about

hyperledger-fabric-ca.readthedocs.io

 

 

Posted by yongary
,

도커 먼저 설치. (https://phoenixnap.com/kb/how-to-install-docker-centos-7 참고)

$ sudo yum install docker

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker 0 (active Running 확인)


kafka노드는 : docker-compose도 설치권장:  https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-centos-7  



[go 설치] hyperLedger 1.4.6에서는 go1.11.x추천.

cd
wget https://storage.googleapis.com/golang/go1.11.1.linux-amd64.tar.gz
sudo tar -zxvf go1.11.1.linux-amd64.tar.gz -C /usr/local
echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/profile
source /etc/profile




하이퍼레저를 이용해 웹에서 간단히 트랜잭션을 실행하는 예제입니다.


https://github.com/yongarykim/hyperledger-test


hyperLedger 실행

  1. hyperLedger 설치
  1. hyperLedger 실행 fabric-samples/fabcar 밑에
  • $./startFabric.sh

백엔드 실행 (backend run)

  • $npm run-script start:dev 개발환경 - nodemon이용해서 서버소스 자동 update
  • $npm run-script start:express 상용환경과 유사

프런트엔드 실행 (frontend run)

  • $npm start

접속 URL

http://localhost:3000/simple-test

(실행법) CAR0 ~ CAR9 사이 입력하고

  • Get Owner 버튼 누르면, CARx의 주인 출력
  • 새주인 입력하고 Set 버튼 누르면 CARx의 주인 변경


Posted by yongary
,

이더리움과 하이퍼레저의 차이점은


하이퍼레저의 경우

보증피어(endoring peer)에서만 코드를 실행하고, 결과를 공유한다.

이에 따라

거래처리를 병렬적으로 한다. (이더리움은 순차적)

이러한 프로그래밍 형태를 non-deterministic이라 부른다. (이더리움은 deterministic)


== 그 외 구성요소 ==

MSP (Membership Service Provide) - 

Ordering Service - 병렬적인 처리의 순서 정렬.


그 외 client node와 보증피어로 구성됨


== == 

이더리움이 머클패트리샤트리로 계정기반의 world-state를 관리하듯이

하이퍼렛져는 key-value기반의 world-state를 관리한다.



박승철교수님의 강의 참조: REF



=== ChainCode 관련 == 

chainCode는 여러노드에서 실행을 위해 multiple Sign을 할 수도 있고, 간단하게 single Sign을 할 수도 있다.


Single Sign시에는 하나의 노드에서만 구동이 가능하다.


<install 절차>

1. Install을 위해서는 SignedProposal을 LSCC(Lifecycle System ChainCode)로 보내야 한다. SignedCDS포맷을 따르게 된다.
- $peer chaincode install 커맨드 이용


2. instantiate 

- 채널을 바인딩해서 해당채널에  transaction을 submit한다.

- $peer chaincode instantiate 커맨드 


한번 instantiate를 하고난 후에는 upgrade 커맨드를 이용한다.


참고: #peer chaincode --help   REF


peer chaincode install -n mycc -v 0 -p path/to/my/chaincode/v0
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["a", "b", "c"]}' -C mychannel
peer chaincode install -n mycc -v 1 -p path/to/my/chaincode/v1
peer chaincode upgrade -n mycc -v 1 -c '{"Args":["d", "e", "f"]}' -C mychannel
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","e"]}'
peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'


Posted by yongary
,