DAML 튜토리얼을 찾고 있습니까? 그렇게한다면 올바른 장소에 온 것입니다. 이 기사에서는 적절한 DAML 블록 체인 튜토리얼을 수행 할 것입니다..

이 튜토리얼은 DAML에 대한 기본적인 이해, 왜 필요한지, 더 이해하기위한 코드 예제를 살펴볼 것입니다. 초보자 인 경우 DAML을 시작하기위한 자습서를 찾을 수 있습니다. 요컨대, 이것은 초보자를위한 완벽한 DAML 튜토리얼입니다. 그러나이 기사의 범위를 벗어나므로 튜토리얼에서 완전한 애플리케이션을 빌드하지 않을 것이므로 완전한 DAML 개발 튜토리얼이 아닙니다..

DAML 자습서 : DAML 시작하기

그렇다면 DAML은 무엇입니까? 살펴 보자.

블록 체인 재교육이 필요하십니까? 시작하려면 초보자를위한 블록 체인 가이드를 확인하세요! 또한 DAML에 대한 최고의 가이드를 확인하세요..

DAML이란??

DAML은 분산 애플리케이션 개발을위한 오픈 소스 프로그래밍 언어입니다. 이를 통해 개발자는 분산 된 애플리케이션을 간결하고 신속하며 정확하게 만들 수 있습니다..

Hyperledger는 DAML을 유지하고 생태계의 일부로 만들었습니다. 이것은 또한 DAML을 선도적 인 블록 체인 플랫폼 위에서 실행되는 프로그래밍 언어 중 하나로 만듭니다. 예, 여러 플랫폼에서 허용됩니다. 또한 개발자가 애플리케이션을 빠르게 개발 한 다음 배포 할 위치를 쉽게 결정할 수 있습니다..

DAML이 특별한 이유?

DAML은 분산 언어를 구축하기위한 프로그래밍 언어입니다. 점점 더 많은 회사가 분산 응용 프로그램의 중요성을 이해함에 따라 DAML은 해당 회사와 개발자가 목표를 달성 할 수있는 도구를 제공합니다. 실제로 분산 애플리케이션을 제어 할 수있는 놀라운 도구 중 하나입니다..

DAML은 분산 상태 동기화 및 암호화와 같은 복잡한 문제에 대한 솔루션을 제공하므로 어려운 설계 문제를 정면으로 해결합니다. 목표를 달성하기 위해 재 설계되었습니다.. 

개발자가 블록 체인 애플리케이션을 작성할 때 기본 설계 또는 구현이 추상화됩니다. 개발자는 추상적 인 요구 사항에 집중하고 DAML이 모든 어려운 작업을 처리하도록합니다. DAML이 특별하다는 것을 알면 DAML 튜토리얼을 사용하여 DAML을 배우는 것을 더 잘 이해할 수 있습니다..

DAML 기능

DAML 자습서의이 섹션에서는 DAML 주요 기능에 대해 알아 봅니다..

데이터 모델 : DAML을 사용하면 개발자가 애플리케이션을위한 복잡한 데이터 체계를 쉽게 만들 수 있습니다. 따라서 복잡한 요구 사항 또는 비즈니스 프로세스를 쉽게 설계하고 구현할 수 있습니다..

세분화 된 권한 : DAML 계약은 권한을 설정하도록 미세 조정됩니다. 즉, 개발자는 계약에 서명 할 수있는 사람, 계약을 볼 수있는 사람 및 조건을 설정할 수 있습니다..

비즈니스 로직 : 비즈니스 로직도 쉽게 통합 할 수 있습니다. 개발자는 계약, 어설 션, 매개 변수 등에 필요한 조치를 작성할 수 있습니다.!

시나리오 기반 테스트 : 시나리오 기반 테스트는 DAML에서도 가능합니다. 이를 통해 개발자는 워크 플로와 같은 분산 형 앱의 비즈니스 로직 및 기타 측면을 테스트 할 수 있습니다..

런타임 기능

위의 네 가지 핵심 기능 외에도 DAML 런타임도 있습니다. 런타임은 응용 프로그램이 실행되는 동안 생성 된 환경을 나타냅니다. 이 상태에서는 프로그램을 효율적이고 효과적으로 실행하는 주요 기능이 있습니다. DAML 튜토리얼에서 이에 대해 배우면 DAML 학습을 강화할 수 있습니다..

아래에서 그들에 대해 이야기합시다.

스토리지 추상화 → 스토리지 추상화는 모든 DAML 프로그램이 스토리지에 구애받지 않도록하는 지속성 계층을 제공합니다. 간단히 말해서 DAML 프로그램은 해당 데이터를 소화 가능한 형식으로 변환 할 수 있으므로 선택한 스토리지에 의존하지 않습니다..

승인 확인 → 권한 부여는 계약 내의 모든 작업을 확인합니다. 작업이 적절한 승인을 통과하지 못하면 실행이 허용되지 않습니다..

그런 다음 계약은 런타임 오류를 발생시키고 구매자 또는 개발자에게 알립니다..

책임 추적 → 런타임은 책임 추적도 담당합니다. 당사자가 자발적으로 계약을 체결하도록합니다. 이를 위해 서명자 서명이 필요했습니다. 이는 주최자 또는 판매자의 강제적 인 행동으로부터 구매자를 보호하기 위해 수행됩니다.. 

원자 구성 성 → DAML은 원자 적 디자인을 지원합니다. 이것은 모든 작업이 원자 적으로 수행되므로 커밋되거나 전혀 수행되지 않을 수 있음을 의미합니다. 계약 실행에 있어서는 중간 지점이 없습니다. 이는 워크 플로의 안전을 보장하고 악용자를 멀리하기 위해 수행됩니다..

이중 지출 없음 → DAML 런타임을 사용하면 계약은 이중 지출이 불가능하도록 설계되었습니다. 이는 동일한 계약을 두 번 실행할 수 없음을 의미합니다.. 

알아야 할 프라이버시 → DAML은 승인시 정보를 사용할 수 있도록 하위 트랜잭션 수준을 제공합니다..

결정 론적 실행 → 마지막으로 런타임은 결정적 실행을 지원합니다. 즉, 모든 작업의 ​​효과는 원장의 현재 상태에 따라 달라집니다..

DAML 시작하기

DAML 튜토리얼의이 섹션에서는 DAML 블록 체인 튜토리얼의 시작 안내서를 살펴볼 것입니다. DAML을 사용하려면 먼저 설치해야합니다..

DAML을 사용하려면 2 단계 프로세스를 따라야합니다..

1) 의존성 설치

DAML을 사용하려면 먼저 종속성을 설치해야합니다. 이렇게하려면 SDK를 다운로드하여 운영 체제에 설치해야합니다..

그 외에는 다음과 같은 것이 있으면 가장 좋습니다.

  • Visual Studio Code 또는 호환 가능한 통합 개발 환경
  • JDK 8 이상.

2) SDK 설치

Windows를 사용하는 경우 다음으로 이동할 수 있습니다. 링크, 실행 파일 다운로드.

Linux 또는 MAC의 경우 curl을 사용하여 다음 명령을 실행해야합니다..

curl –sSL https://get.daml.com/ | sh

~ / .daml / bin을 PATH 변수에 추가하라는 메시지가 표시됩니다. 완료되면 DAML을 사용할 준비가 된 것입니다..

DAML 자습서 초보자 가이드

DAML로 일한 적이 없습니까? 그런 다음 걱정하지 마십시오.이 섹션에서와 같이 DAML의 기본 사항, 데이터 유형, 템플릿, 함수, 표현식 등을 살펴볼 것입니다.!

하지만 그 전에 (Digital Asset) DA Ledger 모델을 이해해야합니다. DAML 튜토리얼의 중요한 부분입니다..

DA 원장 모델

DA Ledger Model은 DAML의 핵심입니다. 가상 공유 원장의 도움으로 다자간 워크 플로우를 제공합니다. 더 나은 아이디어를 얻으려면 아래 스크린 샷을 확인하세요..

출처 : DAML 문서

모델은 DA 원장 구조 (무엇), 무결성 모델 (누가 요청할 수 있는지), 프라이버시 모델 (누가 볼 수 있는지)을 정의하는 데 사용됩니다..

DA Ledger 모델에 대해 더 깊이 이해하려면 공식 문서를 확인하세요. 여기.

기본 계약

DAML의 핵심에는 DAML 원장이 있습니다. 트랜잭션, 템플릿 계약, 서명자, DAML 모듈 및 파일을 포함한 필수 개념을 이해하는 데 도움이되는 작은 템플릿을 살펴볼 것입니다..

커밋

DAML Ledger에는 “커밋”목록이 있습니다. 간단히 말해서 커밋은 원장에 제출 된 트랜잭션입니다. 계약에서 실행해야하는 활성 트랜잭션으로 생각할 수 있으며 실행은 계약 속성 및 조건에 따라 다릅니다..

DAML 모듈 및 파일

시작하기 전에 DAML 버전을 언급해야합니다. DAML 파일 상단에서 할 수 있습니다. 버전은 사용중인 언어 버전을 컴파일러에 알립니다..

젠장 1.2

모듈을 가져 오려면 “module”키워드를 사용해야합니다..

모듈 토큰 여기서

코멘트

주석을 추가하려면 “–”키워드를 사용하면됩니다..

— 이것은 코멘트입니다

템플릿

템플릿은 계약 유형을 정의하는 데 사용됩니다. 이는 계약을 실행할 수있는 액세스 권한이있는 엔티티를 정의합니다. 계약을 템플릿 인스턴스로 생각할 수 있습니다..

템플릿 토큰

    와

        소유자 : 파티

    어디 

        서명자 소유자

보시다시피 “template”키워드를 사용하여 토큰 템플릿을 정의했습니다. 또한 논쟁이 필요합니다. 한 가지 더 주목할 수있는 것은 공백 지향적이라는 것입니다. 이전에 Python을 사용한 적이 있다면 코드가 어떻게 구조화되고 의도되었는지 이해하게 될 것입니다..

마지막으로 계약 인스턴스 서명자를 나타내는 signatory 키워드를 볼 수 있습니다. 계약서 보관 및 생성을 포함하여 계약에 대한 조치를 취하려면 이러한 당사자의 권한이 필요합니다.. 

템플릿을 사용하여 시나리오 이해

이제 템플릿의 기본 구조를 이해 했으므로 이제 DAML 자습서에서 두 가지 다른 템플릿을 사용하여 시나리오를 이해하겠습니다. 하지만 그 전에 “”가 정확히 무엇인지 이해합시다.대본.

대본

시나리오는 템플릿이 제대로 작동하는지 확인하는 데 사용할 수있는 테스트 레시피로 가장 잘 설명 할 수 있습니다. 트랜잭션 테스트를 수행하는 데 사용할 수 있습니다. 아래 예를 살펴 보겠습니다..

token_test_one = 시나리오 수행

    샘 <– getParty “sam”

    sam do 제출

        소유자 = sam으로 토큰 생성

위는“sam”으로 알려진 당사자의 토큰을 다루는 기본 시나리오입니다.

시나리오를 실행하려면 DAML 스튜디오를 사용해야합니다.. 

시나리오에 대해 자세히 알아 보려면 다음을 확인하십시오. 여기에 시나리오 문서 페이지.

데이터 형식

다른 프로그래밍 언어와 마찬가지로 DAML은 데이터 유형도 지원합니다. 데이터 유형을 사용하면 변수를 정의하고 거기에 데이터를 저장할 수 있습니다..

더 간단하게 만들기 위해 템플릿을 데이터베이스 테이블이라고 생각해 봅시다. 이제 템플릿에 데이터를 저장하고 템플릿 디자인을 통해 쉽게 관리 할 수 ​​있습니다..

DAML이 제공하는 많은 기본 데이터 유형이 있습니다. 여기에는 다음이 포함됩니다..

  • 당사자 → 엔티티 ID를 저장합니다. 당사자는 거래를 제출하고 계약에 서명 할 수 있습니다..
  • 텍스트 → 유니 코드 문자 저장
  • Int → 64 비트 정수 저장
  • Decime → 고정 소수점 숫자 저장
  • 날짜 → 날짜 저장
  • 시간 → UTC로 시간 저장
  • RelTime → 시차 저장
  • ContractId → 계약 유형 참조

다음은 일부 기본 유형을 이해하는 코드입니다..

native_test = 시나리오 수행

  샘 <- getParty“Sam”

  미스테리오 <- getParty“Mysterio”

  허락하다

    my_int = –657

    my_dec = 0.001 : 십진수

    my_text =“샘”

    my_bool = 거짓

 

  주장 (샘 / = Mysterio)

  주장 (-my_int == 123)

  assert (1000.0 * my_dec == 1.0)

  assert (my_text ==“Sam”)

DAML은 튜플, 목록 및 레코드를 포함한 다른 데이터 유형도 지원합니다.. 

DAML의 데이터 유형에 대해 알아 보려면 설명서 페이지를 확인하세요. 여기.

선택 사항을 사용하여 데이터 변환

DAML은 불변성을 지원합니다. 이는 데이터를 업데이트해야 할 때마다 의미합니다. 새 데이터로 새 계약을 작성해야합니다. 그러나 항상 변경하고 수정할 수있는 아주 작은 것이 있기 때문에 항상 그런 것은 아닙니다. 예를 들어, 회사는 다음을 사용하여 전화 번호를 변경할 수 있습니다. 선택.

DAML 문서에서 가져온 예를 살펴 보겠습니다..

템플릿 연락처

  와

    소유자 : 파티

    파티 : 파티

    주소 : 텍스트

    전화 : 문자

  어디

    서명자 소유자

 

    컨트롤러 소유자는

      업데이트

        : ContractId 연락처

        와

          newTelephone : 텍스트

        하다

          이것을 만들어

            전화 = newTelephone

대부분의 코드는 위에 설명되어 있습니다. 여기서 알아야 할 유일한 것은 “UpdateTelephone”이라는 선택 항목을 정의했다는 것입니다.

선택 사항을 위임으로 사용할 수도 있습니다. 마지막으로 원장 모델에 통합 할 수도 있습니다.. 

DAML 선택에 대해 자세히 알아 보려면 공식 문서 페이지를 확인하십시오. 여기.

계약에 제약 추가

“ensure”키워드를 사용하여 DAML 계약에 제약 조건을 추가 할 수도 있습니다. 또한 assert, abort 및 error 키워드를 사용하는 다른 메커니즘을 사용하여 계약에 제약 조건을 추가 할 수 있습니다..

그러나 그렇게하기 전에 계약서에 적절한 템플릿 사전 조건을 설정해야합니다.. 

제약 및 제한 사항에 대해 자세히 알아 보려면 설명서를 확인하십시오. 여기.

당사자 및 권한

DAML에는 당사자를 처리하고 계약에 액세스 할 수있는 권한을 부여하는 적절한 방법이 있습니다. 이를 사용하여 권한을 전달할뿐만 아니라 원장 작동 방식을 변경할 수있는 고급 선택을 작성할 수도 있습니다. 이러한 유연성은 당사자에게 상황을 변경하고 계약의 핵심 아이디어를 그대로 유지할 수있는 충분한 도구를 제공하므로 중요합니다.. 

예를 들어 IOU 취소를 방지하거나 제안-수락 워크 플로를 사용하여 일회성 인증을 더 잘 수행 할 수 있습니다. 거의 모든 시나리오에 대한 솔루션을 제공하기 위해 DAML 내에서 만들어진 많은 옵션이 있습니다..

당사자 및 당국에 대해 자세히 알아보기 여기.

결론

이것으로 DAML 튜토리얼이 끝납니다. 이 튜토리얼에서 우리는 DAML과 그것이 특별한 이유에 대해 배웠습니다. 또한 DAML의 내부 작업 및 데이터 유형, 시나리오 등과 같은 프로그래밍 언어의 기타 주요 측면에 대해서도 배웠습니다. 이러한 주요 개념은 향후 수행 할 DAML 프로젝트에 참여하는 데 도움이됩니다..

그렇다면 DAML에 대해 어떻게 생각하십니까? 분산 된 애플리케이션을 만들기 위해 유비쿼터스 프로그래밍 언어가 될 잠재력이 있다고 생각하십니까? 아래에 댓글을 달고 알려주세요..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me