Hyperledger Fabric 자습서 : 시작 가이드

에 오신 것을 환영합니다 Hyperledger Fabric 튜토리얼.

이 튜토리얼에서는 블록 체인에 깊이 투자하고 Hyperledger Fabric을 시작하려는 개발자 중 한 명인 경우 첫 번째 Hyperledger 애플리케이션 및 기타 중요한 사항을 만드는 방법을 배웁니다..

모든 엔터프라이즈 급 프레임 워크가 작동하려면 전문 지식이 필요합니다. 초보자라면 작은 일을 고치기 위해 많은 노력을 기울일 것입니다. 그렇기 때문에 일찍 시작하여 자신의 방식으로 연습하는 것이 중요합니다..

하지만 왜 하이퍼 레저 패브릭 그리고 아무것도 아닙니다 기타 엔터프라이즈 블록 체인 프레임 워크?

그 이유는 Hyperledger Fabric이 권한있는 분산 원장 기술 (DLT)을 제공하는 최고의 엔터프라이즈 블록 체인 프레임 워크이기 때문입니다. 기업에 이상적인 선택이되는 몇 가지 훌륭한 기능이 있습니다..

CISCO, IBM, Intel, SAP, Accenture 등으로 구성된 멤버를 확인하여 인기도를 측정 할 수 있습니다..

Hyperledger Fabric이란??

Hyperledger Fabric은 오픈 소스 엔터프라이즈 급 프레임 워크입니다. 허가 된 분산 원장 기술에 의존하여 절실히 필요한 애플리케이션과 솔루션을 제공합니다. Linux Foundation은 다양한 프로젝트를 진행하고 있으며 Hyperledger Fabric은 그중 하나입니다..

오픈 소스이기 때문에 누구나 프로젝트에 참여하고 기여할 수 있습니다. 현재 35 개 조직이 Hyperledger Fabric을 최고의 엔터프라이즈 프레임 워크로 만들기 위해 협력하고 있습니다..

핵심에서 Hyperledger Fabric은 구성 가능하고 모듈 식입니다. 이는 기업이 프레임 워크를 사용하여 원활하게 작업 할 수 있음을 의미합니다. 이러한 모든 바람직한 기능은 Hyperledger Fabric을 훌륭한 선택으로 만듭니다! 작성 시점에 새로운 기능과 함께 제공되는 Hyperledger Fabric v1.4를 사용해 볼 수 있습니다..

Hyperledger Fabric 기능

Hyperledger Fabric에는 5 가지 주요 기능이 있습니다. 그들은 다음과 같습니다

  • 신원 관리 : 신원 관리는 모든 허가 된 네트워크에 중요합니다. 이것이 바로 ID 관리가 Hyperledger 패브릭의 중요한 기능 중 하나 인 이유입니다. 관리자에게 적절한 ID 관리를 설정하도록함으로써 기업은 여러 계층의 권한을 사용할 수 있습니다..
  • 효율적인 처리 : Hyperledger Fabric은 효율적입니다. 네트워크 역할이 노드 유형으로 할당되기 때문입니다. 약정 및 주문과 별도로 트랜잭션 실행을 허용함으로써 효율성도 제공됩니다..
  • 모듈 식 디자인 :Hyperledger Fabric은 모듈 식 설계를 사용하므로 서비스 또는 기타 시스템을 쉽게 통합 할 수 있습니다. 이는 또한 합의 알고리즘, ID 등을 지정할 수 있음을 의미합니다..
  • 개인 정보 및 기밀 유지 :Hyperledger Fabric은 또한 기업에 매우 중요한 적절한 기밀성과 개인 정보를 제공합니다. 정보가 유출되지 않도록 적절한 데이터 채널을 제공하고 어떤 비용 으로든 기밀을 유지할 수 있습니다..
  • 체인 코드 기능 :Hyperledger Fabric은 특정 유형의 트랜잭션이 호출 될 때만 로직을 호출 할 수있는 체인 코드 기능을 제공합니다..

Hyperledger 패브릭의 다른 주요 기능에는 고품질 코드, 오픈 소스, 뛰어난 확장 성 및 효율성, 업계 전반의 사용이 포함됩니다..

Hyperledger Fabric 튜토리얼

애플리케이션 개발을 시작하기 전에 Hyperledger Fabric의 시스템 아키텍처를 이해하는 것이 좋습니다. 그렇게함으로써 내부적으로 어떻게 작동하는지 이해할 수 있습니다. 이 지식은 첫 번째 Hyperledger Fabric 애플리케이션을 개발하는 데 사용할 수 있습니다..

시스템 구조

핵심에는 노드가 있습니다. 노드는 서로 통신하고 네트워크를 만듭니다. 그러나 블록 체인 자체에서 실행되는 프로그램이 있습니다. 그들은 체인 코드입니다. 체인 코드는 원장 및 상태 데이터를 보유하고 트랜잭션 실행도 처리합니다..

Hyperledger Fabric에서 체인 코드는 트랜잭션이 운영으로 수행되기 때문에 가장 강조됩니다. 반면에 거래는 보증을 통해 검증되어야합니다. 보증 된 트랜잭션 만 커밋 할 수 있습니다..

업무

Hyperledger Fabric의 트랜잭션은 두 가지 유형이 있습니다.

  • 트랜잭션 배포 : 이러한 유형의 트랜잭션은 매개 변수를 프로그램으로 사용하여 새 체인 코드를 생성합니다. 완료되면 체인 코드가 블록 체인에 “설치”되었다고합니다..
  • Invoke 트랜잭션 : Invoke 트랜잭션은 이전 체인 코드 배포의 컨텍스트로 실행되는 트랜잭션입니다..

블록 체인 데이터 구조

블록 체인에서 사용되는 기본 데이터 구조는 키-값 저장소 (KVS)입니다. 키는 대부분 이름이며 값은 blob입니다. 체인 코드는 다음 두 가지 KVS 작업의 도움으로 데이터 구조를 조작 할 수 있습니다..

  • 놓다
  • 가져 오기

전체 데이터 구조는 상태로 간주됩니다..

원장

원장은 성공적인 상태 변경 및 실패한 시도의 순서입니다. 나중에 참조 할 수 있도록 정렬되어 있습니다. 또한 주문 된 해시 체인 트랜잭션 블록입니다. 원장에는 순서대로 블록이 포함되어 있으며 순서대로 정렬 된 트랜잭션 배열이 포함됩니다..

노드

노드는 네트워크 내의 모든 통신 엔티티가 될 수 있습니다..

고객

클라이언트는 최종 사용자를 대신하여 행동 할 수있는 사람입니다..

동료

피어는 원장의 상태를 처리하고 네트워크가 최적으로 작동하는지 확인합니다. 피어는 트랜잭션을 보증하는 데 도움이되는 피어를 보증 할 수 있습니다..

첫 번째 Hyperledger Fabric 앱 작성

이제 Hyperledger Fabric의 아키텍처 구조를 이해 했으므로 이제 첫 번째 애플리케이션을 만들 차례입니다. 애플리케이션을 살펴보면 Fabric 애플리케이션의 작동 방식을 이해할 수 있습니다. 이 튜토리얼에서는 프레임 워크 내에서 간단한 스마트 계약 및 기타 애플리케이션을 사용하는 방법을 배웁니다..

더 쉽게 개발할 수 있도록 키를 쉽게 참조 할 수 있도록 애플리케이션 SDK를 사용할 것입니다.

스마트 계약 및 기타 쿼리 호출을 포함한 기능.

Hyperledger 패브릭 앱을 개발하는 동안 따라야하는 세 가지 주요 단계는 다음과 같습니다.

  1. 개발 환경을 설정하십시오. 개발 환경은 응용 프로그램에 필요한 네트워크를 제공합니다. 스마트 계약이 작동하도록 할 수있는 기능도 제공합니다..
  2. 샘플 스마트 계약에 대해 학습합니다. 여기에서 스마트 계약을 통해 거래를 이해해야합니다. 애플리케이션에서 시뮬레이션 한대로 쿼리를 실행하고이를 사용하여 원장도 업데이트합니다..
  3. 샘플 애플리케이션 개발 : 마지막 단계에서는 스마트 계약을 사용하여 샘플 애플리케이션을 생성합니다..

첫 번째 네트워크 구축

애플리케이션을 시작하기 전에 첫 번째 네트워크를 구축해 보겠습니다. 시작하려면 몇 가지 필수 구성 요소를 설치해야합니다. 이러한 전제 조건은 모든 것이 의도 한대로 실행되도록합니다..

필수 설치 가이드를 확인하세요. 여기.

Hyperledger Composer : 엔터프라이즈 블록 체인 구축도 확인하세요.

바이너리, 샘플 및 Docker 이미지를 설치할 수 있습니다. 설치 가이드 확인 여기.

샘플을 설치하면 그 안에 포함 된 패브릭 샘플을 찾을 수 있습니다. “fabric-samples”저장소에 포함되어야합니다. 저장소에는 첫 번째 네트워크 샘플이 있습니다..

해당 디렉토리로 이동하려면 아래와 같이 cd 명령을 사용하여 폴더로 이동하십시오..

cd 패브릭 샘플 / 첫 번째 네트워크

첫 번째 네트워크 샘플을 실행하려면 byfn.sh 스크립트를 사용해야합니다. 스크립트는 4 명의 동료와 함께 프로젝트를 빠르게 시작하도록 설계되었습니다. 네 동료는 서로 다른 두 조직을 대표합니다. 또한 컨테이너, 체인 코드 및 트랜잭션을 시작합니다. 컨테이너를 통해 더 많은 피어가 네트워크에 참여할 수 있습니다..

네트워크 아티팩트 생성

이제 네트워크 엔티티에 대한 인증서 및 키를 생성 할 수 있습니다. 이렇게하려면 다음 명령을 실행해야합니다..

.byfn.sh 생성

프로세스가 시작되기 전에 확인을 요청합니다. Y를 눌러 주문 서비스, 구성 등의 전원 공급을 포함하여 필요한 정보로 네트워크를 채우십시오..

네트워크 전원 공급

다음으로 네트워크에 전원을 공급해야합니다. 아래의 간단한 명령으로 네트워크에 전원을 공급할 수 있습니다..

./byfn.sh 위로

명령을 실행하면 프레임 워크가 Golang 체인 코드 이미지를 컴파일합니다. 또한 연결된 컨테이너가 실행되어 새로운 피어에게 네트워크에 참여하는 방법을 제공합니다..

기본적으로 Go in action이 표시됩니다. Go가 체인 코드 기본 언어이기 때문입니다. 하지만 그렇다고 다른 프로그래밍 언어를 사용할 수 없다는 의미는 아닙니다. Chaincode는 Node.js와 Java도 지원합니다. 노드로 변경하려면 다음 명령을 사용할 수 있습니다..

.byfn.sh up -l 노드

마찬가지로 자바로 변경 당신이 필요하다면.

.byfn.sh up -l java

여러 체인 코드 언어를 사용하려면 Raft 또는 Kafka를 포함한 주문 서비스를 사용해야합니다..

./byfn.sh up -o etcdraft

./byfn.sh up -o kafka

명령을 사용할 때마다 명령이 실행되기 전에 다시 한 번 확인하라는 메시지가 표시됩니다..

첫 번째 네트워크를 구축하고 유지하는 방법을 자세히 이해하려면 네트워크 구축 자습서를 확인하십시오. 여기.

네트워크 시작

이제 샘플을 설치하고 필수 구성 요소 페이지를 살펴 보았으므로 이제 네트워크를 시작할 시간입니다..

간단하게하기 위해 JavaScript를 사용하지 않을 것입니다. 또한 fabcar 하위 디렉토리가 필요합니다. 패브릭 샘플 리포지토리 로컬 클론도 만듭니다..

네트워크를 시작하려면 startFabric.sh 셸 스크립트를 사용해야합니다. 일단 시작되면 인증 기관, 주문자, 피어 등이있는 블록 체인 네트워크를 얻게됩니다. fabcar 하위 디렉토리가 사용됨에 따라 FabCar 스마트 계약이 자동으로 설치되고 시작됩니다..

네트워크를 시작하는 명령은 다음과 같습니다.

./startFabric.sh 자바 스크립트

응용 프로그램 설치

이제 애플리케이션을 설치할 차례입니다. 하지만 그렇게하기 전에 종속성을 설치해야합니다..

npm 설치

위의 명령은에 정의 된 중요한 종속성 설치를 시작합니다. package.json

패키지에서 시작될 중요한 클래스는 다음과 같습니다.

  • 패브릭 네트워크 클래스 → 트랜잭션, 신원, 지갑 활성화
  • fabric-ca-client → 각 인증 기관에 사용자 등록

완료되면 fabcar / javascript 디렉토리로 이동합니다. 아래 디렉토리 파일을 살펴 보겠습니다.

  • encrollAdmin.js
  • node_modules
  • package.json
  • registerUser.js
  • invoke.js
  • package-lock.json
  • query.js
  • 지갑

인증 기관과 통신

이제 실행중인 네트워크가 있으므로 인증 기관과 통신하는 방법을 알아 보겠습니다..

인증서 서명 요청 (CSR)

우리의 첫 번째 과제는 CSR 프로세스를 거치는 것입니다. 이 과정에서 관리자 인증 기관에 연락하여 공용, 개인 및 X.509 인증서를 생성합니다. 사용 된 프로그램은 enroll.js입니다.

관리자를 등록하려면 다음 명령을 사용하십시오..

node enrollAdmin.js

이제 모든 정보가 지갑 예배 규칙서.

다른 사용자를 등록하려면 동일한 절차를 따라야합니다. 다른 사용자를 등록 해 보겠습니다. 사용자

노드 reisterUser.js

그러면 새 사용자가 등록되고 관리자와 함께 지갑에 자격 증명이 저장됩니다..

원장 질의

블록 체인 네트워크에는 원장의 사본이 있으므로이를 쿼리하여 정보를 찾을 수 있습니다. 원장은 읽기 전용이므로 읽기 쿼리 만 실행할 수 있습니다. 이해를 돕기 위해 아래 이미지를 확인하세요..

Hyplerledger Fabric 튜토리얼

출처 : Hyperledger Fabric 문서

원장의 값도 그대로 유지됩니다. 세계 국가. 이것은 자습서의 앞부분에서 설명한 키 쌍 값입니다. 따라서 쿼리는 키의 데이터를 나타낼 수 있습니다. 좋은 소식은 CouchDB와 같은 데이터베이스를 활용할 수 있다는 것입니다. 관계형 데이터베이스를 사용하도록 세계 상태를 구성 할 수 있습니다..

원장의 모든 자동차 목록을 얻으려면 다음 명령을 실행하십시오.,

노드 query.js

쿼리 작동 방식을 더 잘 이해하려면 query.js 파일을 작성하고 통과하십시오. 아래에서 살펴 보겠습니다..

const {FileSystemWallet, Gateway} = require (‘fabric-network’);

위 줄에서 네트워크 연결이 이루어집니다.

그런 다음 애플리케이션이 연결할 게이트웨이가 생성됩니다. 아래 라인을 사용하여 수행됩니다..

const 게이트웨이 = new Gateway ();

await gateway.connect (ccp, {wallet, identity :‘user1’});

그만큼 ccp 사용자 신원 및 관련 지갑 정보를 식별하는 데 사용됩니다..

Hyperledger Fabric 네트워크는 여러 채널을 실행하므로 애플리케이션의 특정 채널에 연결하는 것이 중요합니다..

const contract = network.getContract (‘fabcar’);

스마트 계약 이해

스마트 계약에 대해 더 잘 이해하기 위해 살펴 보겠습니다. 또한 그것을 통해 이루어진 거래를 보여줄 것입니다.

액세스하려면 하위 디렉토리로 이동해야합니다. 체인 코드 / fabcar / javascript / lib. 거기에 있으면 편집기에서 fabcar.js를 엽니 다..

여기에서 계약 클래스를 사용하여 스마트 계약을 정의하는 것을 볼 수 있습니다. 또한 queryCar, queryAllCars, initLedger, changeCarOwner 및 createCar를 포함하여 스마트 계약 내에 정의 된 명확한 트랜잭션이 있습니다..

거래는 다음과 같습니다.

비동기 queryCar (ctx, carNumber) {…}

queryCar 트랜잭션을 살펴 보겠습니다..

async queryAllCars (ctx) {

const startKey =‘CAR0’;

const endKey =‘CAR999’;

const 반복기 = await ctx.stub.getStateByRange (startKey, endKey);

하이퍼 레저 패브릭 노드 js 튜토리얼

출처 : Hyperledger Fabric 문서

Ledger 업데이트 : 새 차 구입

마지막 단계는 원장을 새 정보로 업데이트하는 것입니다. 이 경우 invoke.js를 사용하여 새 자동차를 만들어 보겠습니다. 파일을 열고 다음 명령을 추가해야합니다..

await contract.submitTransaction (‘createCar’,‘CAR12’,‘CarBrand’,’Model’,‘Color’,‘Owner’);

위 코드에서 앱은 createCar 스마트 계약 트랜잭션을 호출합니다. 그 대가로 CarBrand, Color, Model 및 Owner를 포함한 속성으로 자동차를 생성합니다..

이제 다음 코드를 실행하여 원장에 푸시합니다.

노드 invoke.js

이로 인해 원장 업데이트가 발생하고 성공적인 출력을 얻을 수 있습니다..

결론

이것으로 튜토리얼이 끝납니다. 튜토리얼에서 우리의 목표는 표면만을 덮는 것이 었습니다. 자세히 알아 보려면 공식 Hyperledger Fabric 문서를 확인하세요. 모든 내용을 자세히 설명합니다..

그렇다면 엔터프라이즈 블록 체인을 구축하기 위해 Hyperledger Fabric을 사용할 예정입니까? 아래에 댓글을 달고 알려주세요..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map