: 공통의 집합을 정의함.
일반적인 용어, 데이터, 규칙, 개념 정의 및 프로세스
= 비지니스 모델 종합 -> 거래 당사자 간의 상호작용을 관리
스마트 컨트렉트 : 실행 가능한 코드에서 서로 다른 조직의 규칙을 정의
애플리케이션 : 원장에 기록되는 트랜잭션을 생성하는 스마트 컨트랙트를 호출함.
블록체인 네트워크 : 위 컨트랙틀르 실행 가능한 프로그램으로 전환해줌.
컨트랙트
: 특정 비즈니스와 관련된 도인 특정 프로그램체인코드
: 관련 프로세스 그룹의 기술 컨테이너스마트 컨트렉트
스마트 계약의 핵심 :transaction정의.
ex) assetTransfer.js : 새 자산(asset)을 생성하는 스마트 계약 트랜잭션
async CreateAsset(ctx, id, color, size, owner, appraisedValue) {
const asset = {
ID: id,
Color: color,
Size: size,
Owner: owner,
AppraisedValue: appraisedValue,
};
return ctx.stub.putState(id, Buffer.from(JSON.stringify(asset)));
}
보증 정책
은 그 안에 정의된 모든 스마트 컨트렉트에 적용보증 정책
: 주어진 스마트 컨트렉트에 의해 생성된 거래에 서명해야 하는 블록체인 네트워크의 조직 for 해당 거래가 유효하다고 선언ex 자동차 이체 거래
t3 : ORG1과 ORG2 사이의 자동차 환승에 대한 트랜잭션
입력 : {CAR1, ORG1, ORG2}
출력 : {CAR1.owner=ORG1, CAR1.owner=ORG2}
=> ORG1에서 ORG2로 소유자가 변경되었음을 나타내는 방법
애플리케이션의 조직 ORG1에서 입력이 서명
보증 정책 ORG1 및 ORG2로 식별된 두 조직에서 출력이 서명
서명은 개인 키를 사용하여 생성
네트워크의 모든 노드가 트랜잭션에 대해 동의, 네트워크의 모든 사람이 확인 가능
트랜잭션 : 두 단계의 검증
아래 예에서 t3은 유효한 트랜잭션이므로 CAR1의 소유자가 ORG2로 업데이트됨
but, t4(표시되지 않음)는 유효하지 않은 트랜잭션이므로 원장에 기록되는 동안 world state가 업데이트되지 않았으며 CAR2는 ORG2의 소유로 남음.
체인코드 정의
: 체인코드가 작동하는 방식을 제어하는 매개변수를 포함하는 구조체 (체인코드 이름, 버전 및 보증 정책)ex
약어
_lifecycle
: 모든 피어에서 실행되며 피어에 체인코드 설치, 조직에 대한 체인코드 정의 승인, 채널에 대한 체인코드 정의 커밋을 관리저수준 개발은 니멋대로 시스템 체인코드 수정 가능한데 굳이 필요해? 잘못 만지면 ㅈ댐!