DAML(6)
-
[DAML documentation 따라가기] Daml Ledger - structure
1. Actions and Transactions Daml ledger model의 가장 큰 특징은 계층적 action 구조(hierarchical action structure)이에요. 뭔소리인지 모르겠으니 바로 예시로 들어가볼게요! Alice(앞으로는 그냥 A)는 Bank로부터 IOU(I-OWE-YOU)라는 형태의 디지털 화폐를 지급받아요. 여기서 IOU는 차용증이라는 말인데, 이해의 편의를 위해서 그냥 은행으로부터 돈을 받았다고 생각할게요.갑자기 A는 집에 페인트칠을 하고싶은 생각이 들었어요. 마침 지나가던 P123이라는 이름의 Painter(앞으로는 그냥 P)이 자기가 페인트칠 해줄테니 은행한테 받은 돈을 자기한테 달라고 제안을 해요. 그 제안을 안받아들일 이유가 없는 A는 알겠다고 하면서 돈을 ..
2023.07.12 -
[DAML documentation 따라가기] Deploy Daml - Introducing Canton 중 Canton 101
이번 섹션에서는 Canton architecture에 대해서 감을 잡고, high-level flows, entities, components의 모양을 그려보는 과정을 진행합니다. 그리고 약간의 가정(아직은 뭔 가정인지는 모르겠지만)을 한다고 하네요. 1. Canton 이 뭐야? Daml ledger interoperatbility(상호 운용성) protocol 상호 운용성이란 다른 여러 시스템과 호환되어 사용이 가능하도록 함을 의미하는데, 구체적 의미는 아직 모르겠네요. 서로 다른 Daml ledger들을 하나의 virtual global ledger로 연결해주는 역할을 해요. 즉, virtual global ledger을 만들어요. 새로운 party, ledger, application위에 만들어지는..
2023.07.12 -
[DAML documentation 따라가기] Create Daml Apps - Daml Assistant
1. daml 명령어 daml 공식 문서를 보면 command line에 daml을 굉장히 많이 쓰는 것을 알 수 있어요. 아래처럼요! daml start daml build daml studio 이런식으로 쓰이는 daml명령어는 daml assistant를 사용해서 daml SDK의 기능에 접근해서 다양한 일을 하게 해주는 CLI이에요. 2. configuration files Daml assistant와 SDK는 두 개의 file로 configure돼요. global config file project config file Global Config File (daml-config.yaml) SDK 설치와 업데이트를 담당해요. SDK 설치마다 한 개가 있어요. Linux, Mac은 ~./daml 안에 ..
2023.07.11 -
[DAML documentation 따라가기] Create Daml Apps - Transform data using choices
앞선 documentation에서는 accountant party가 본인의 계좌정보를 바꾸는 과정을 진행했었다. 이것이 가능했었던 것은 Account template에서의 signatory가 본인이었기 때문이다. 그런데 이렇게만 구현하면 아래의 문제가 발생한다. 1. 계좌정보를 은행이 바꿔야 하는 상황이 생길 수도 있다! 2. 계좌의 소유자를 변경해야 하는 상황도 가능하다! 위의 두 상황에 대해서는 signatory가 본인뿐인 경우에는 불가능하다. 이를 가능하도록 하기 위해서 Choice를 활용한다. 1. Choice as Methods template Contact with owner : Party party : Party address : Text telephone : Text where signat..
2023.07.07 -
[DAML documentation 따라가기] Create Daml Apps - Test Templates With Daml Script
이번 파트에서 우리가 해볼 것은 아래와 같다. - party 할당하기 - transaction 제출하기 - contract 생성하기 - failure 테스트하기 - contract archiving하기 - ledger와 가장 최근 ledger 상태 확인하기 DAML documentation에서는 Token이라는 이름의 template을 만들어놓고, 해당 template의 여러 contract를 생성하며 실습을 진행한다. 1. Party 할당, Transaction 제출, Contract 생성하기 원장 (ledger)에 정보를 올리기 위해서 해야할 일은 총 3가지이다. - transaction을 누가 진행함? --> Party를 할당하는 이유 - 어떤 contract를 원장에 올리지? --> createC..
2023.07.06 -
[DAML documentation 따라가기] Create Daml Apps - Basic Contracts
Introduction Daml은 Daml Ledger Model위에서 composable application을 만들기 위한 스마트 계약 언어이다. 여기서 Composable application이란 모듈화, 간단히 말해서 기능 별로 함수를 만들어서 확장성을 좋게 만드는 프로그래밍 방법이라고 생각하면 된다. 앞으로는 DAML Ledger의 구조, 아무 DAML Ledger implementation에서 DAML app을 작성하는 법 등을 알려준다고 한다. Daml Ledger 기초 기본적으로 아래의 단어의 의미를 먼저 파악하고 가는 것이 이해가 편하다. transaction : 지금으로써는 contract의 생성과 조회 정도로 생각하면 될듯. 뒤에서 자세히 한다고 한다. commit : party가 성..
2023.07.06