[DAML documentation 따라가기] Daml Ledger - structure

2023. 7. 12. 16:57DAML

1. Actions and Transactions

Daml ledger model의 가장 큰 특징은 계층적 action 구조(hierarchical action structure)이에요.

뭔소리인지 모르겠으니 바로 예시로 들어가볼게요!

 

multi-party interaction을 간단히 나타낸 그림

Alice(앞으로는 그냥 A)는 Bank로부터 IOU(I-OWE-YOU)라는 형태의 디지털 화폐를 지급받아요. 여기서 IOU는 차용증이라는 말인데, 이해의 편의를 위해서 그냥 은행으로부터 돈을 받았다고 생각할게요.갑자기 A는 집에 페인트칠을 하고싶은 생각이 들었어요. 마침 지나가던 P123이라는 이름의 Painter(앞으로는 그냥 P)이 자기가 페인트칠 해줄테니 은행한테 받은 돈을 자기한테 달라고 제안을 해요. 그 제안을 안받아들일 이유가 없는 A는 알겠다고 하면서 돈을 P에게 넘겨주고 Painter에게 자신의 집에 페인트칠을 해달라는 약속을 지켜달라고 계약서를 작성해요.

 

이런 상황을 나타낸 그림이라고 생각하면 되는거예요. 그림의 관점에서 다시한번 이야기를 해볼게요.

 

contract가 생성되고, 내용이 변화해야 하는 시점은 A가 P의 제안을 받아들이는 시점이에요.

그림의 트리의 루트가 바로 이 얘기예요. A가 PainerOffer라는 choice를 exercise하는데, 그 parameter들이 A P Bank P123인거죠.

이 acceptance는 두 가지 결과를 가져오는데, 그림의 트리의 루트의 왼쪽 자식에 해당하는 A가 돈을 옮기는 행동, 그리고 오른쪽 자식에 해당하는 P가 A의 집에 페인트칠을 하기로 약속하는 계약을 작성해야돼요. 

A가 돈을 옮기는 행동은 곧 P가 돈을 받는 행동이 되므로 P가 IOU라는 형태의 디지털 화폐를 지급받게 되는 거고, 이는 IOU가 create된다고 생각할 수 있어요

 

 

 

2. Ledgers

transaction structure은 해당 변화를 요청하는 사람을 제외하고 내용의 변화를 저장해요. commit이라는 형태로 ledger에 올라가게 되고, ledger는 commit들을 순서대로 모아놓은 것이라고 생각을 하면 돼요.

 

Daml ledger은 각 party들이 한 action들의 모든 히스토리를 나타내요.