DAML:區(qū)塊鏈中智能合約的編程語(yǔ)言
DAML 智能合約語(yǔ)言是一種專(zhuān)門(mén)設(shè)計(jì)的特定領(lǐng)域語(yǔ)言domain specific language(DSL),用于編碼應(yīng)用的共享業(yè)務(wù)邏輯。它用于區(qū)塊鏈環(huán)境中分布式應(yīng)用的開(kāi)發(fā)和部署。
區(qū)塊鏈技術(shù)是一種安全機(jī)制,以一種使人難以或不可能修改或入侵的方式來(lái)跟蹤信息。區(qū)塊鏈整合了交易的數(shù)字賬本,它被復(fù)制并發(fā)送至其網(wǎng)絡(luò)上的每臺(tái)計(jì)算機(jī)。在鏈的每個(gè)區(qū)塊中,都有一些交易。當(dāng)區(qū)塊鏈上發(fā)生新的交易時(shí),該交易的記錄就會(huì)被添加到屬于該鏈的每個(gè)人的賬簿中。
區(qū)塊鏈?zhǔn)褂梅植际劫~本技術(shù)distributed ledger technology(DLT),其中數(shù)據(jù)庫(kù)并不保存在一個(gè)服務(wù)器或節(jié)點(diǎn)中。在區(qū)塊鏈中,交易被記錄在一個(gè)被稱(chēng)為哈希hash的不可改變的加密符號(hào)中。這意味著,如果一個(gè)通道或鏈上的一個(gè)區(qū)塊被改變,黑客將很難改變鏈上的那個(gè)區(qū)塊,因?yàn)樗麄儽仨殞?duì)外面的每一個(gè)版本的鏈都要這樣做。區(qū)塊鏈,如比特幣和以太坊,隨著新的區(qū)塊被添加到鏈上而不斷增長(zhǎng),這使得賬本更加安全。
隨著區(qū)塊鏈中智能合約的實(shí)施,在沒(méi)有任何人工干預(yù)的情況下,有了自動(dòng)執(zhí)行的場(chǎng)景。智能合約技術(shù)使得執(zhí)行最高級(jí)別的安全、隱私和反黑客實(shí)施成為可能。

Figure 1: Market size of blockchain technology (Source: Statista.com)
區(qū)塊鏈的用例和應(yīng)用是:
- 加密貨幣
 - 智能合約
 - 安全的個(gè)人信息
 - 數(shù)字健康記錄
 - 電子政務(wù)
 - 不可偽造的代幣(NFT)
 - 游戲
 - 跨境金融交易
 - 數(shù)字投票
 - 供應(yīng)鏈管理
 
根據(jù) Statista.com,自過(guò)去幾年以來(lái),區(qū)塊鏈技術(shù)市場(chǎng)的規(guī)模正在以非??斓乃俣仍鲩L(zhǎng),預(yù)計(jì)到 2025 年將達(dá)到 400 億美元。
區(qū)塊鏈的編程語(yǔ)言和工具箱
有許多編程語(yǔ)言和開(kāi)發(fā)工具包可用于分布式應(yīng)用和智能合約。區(qū)塊鏈的編程和腳本語(yǔ)言包括 
Solidity、Java、Vyper、Serpent、Python、JavaScript、GoLang、PHP、C++、Ruby、Rust、Erlang 等,并根據(jù)實(shí)施場(chǎng)景和用例進(jìn)行使用。
選擇一個(gè)合適的平臺(tái)來(lái)開(kāi)發(fā)和部署區(qū)塊鏈,取決于一系列因素,包括對(duì)安全、隱私、交易速度和可擴(kuò)展性的需求(圖 2)。

Figure 2: Factors to look at when selecting a blockchain platform
開(kāi)發(fā)區(qū)塊鏈的主要平臺(tái)有:
- 以太坊
 - XDC Network
 - Tezos
 - Stellar
 - Hyperledger
 - Ripple
 - Hedera Hashgraph
 - Quorum
 - Corda
 - NEO
 - OpenChain
 - EOS
 - Dragonchain
 - Monero
 
DAML:一種高性能的編程語(yǔ)言
數(shù)字資產(chǎn)建模語(yǔ)言Digital Asset Modeling Language,即 DAML(daml.com),是一種高性能的編程語(yǔ)言,用于開(kāi)發(fā)和部署區(qū)塊鏈環(huán)境中的分布式應(yīng)用。它是一個(gè)輕量級(jí)和簡(jiǎn)潔的平臺(tái),用于快速應(yīng)用開(kāi)發(fā)。

Figure 3: Official portal of DAML
DAML 的主要特點(diǎn)是:
- 細(xì)粒度的權(quán)限
 - 基于場(chǎng)景的測(cè)試
 - 數(shù)據(jù)模型
 - 業(yè)務(wù)邏輯
 - 確定性的執(zhí)行
 - 存儲(chǔ)抽象化
 - 無(wú)重復(fù)開(kāi)銷(xiāo)
 - 負(fù)責(zé)任的跟蹤
 - 原子的可組合性
 - 授權(quán)檢查
 - 需要知道的隱私
 
安裝和使用 DAML
DAML SDK 可以安裝在 Linux、macOS 或 Windows 上。在多個(gè)操作系統(tǒng)上安裝 DAML 的詳細(xì)說(shuō)明可訪問(wèn) https://docs.daml.com/getting-started/installation.html 。
你必須具備以下條件才能使用 DAML:
- Visual Studio Code
 - Java 開(kāi)發(fā)套件(JDK)
 
DAML 可以通過(guò)下載并運(yùn)行可執(zhí)行的安裝程序在 Windows 上安裝,你可訪問(wèn) 
https://github.com/digital-asset/daml/releases/download/v1.18.1/daml-sdk-1.18.1-windows.exe 。
在 Linux 或 Mac 上安裝 DAML 可以通過(guò)在終端執(zhí)行以下內(nèi)容來(lái)完成:
$ curl -sSL https://get.daml.com/ | sh
安裝 DAML 后,可以創(chuàng)建基于區(qū)塊鏈的新應(yīng)用,如圖 4 和 5 所示。

Figure 4: Creating a new app
在另一個(gè)終端中,新的應(yīng)用被導(dǎo)航并安裝了項(xiàng)目的依賴(lài):

Figure 5: Running DAML
WorkingDirectory>cd myapp/ui
WorkingDirectory>npm install
WorkingDirectory>npm start
這樣啟動(dòng)了 WebUI,該應(yīng)用可在 Web 瀏覽器上通過(guò) URL http://localhost:3000/ 訪問(wèn)。

Figure 6: Login panel in DAML app
研究和開(kāi)發(fā)的范圍
區(qū)塊鏈技術(shù)為不同類(lèi)別的應(yīng)用提供了廣泛的開(kāi)發(fā)平臺(tái)和框架。其中許多平臺(tái)是免費(fèi)和開(kāi)源的,可以下載和部署以用于基于研究的實(shí)現(xiàn)。研究學(xué)者、從業(yè)者和專(zhuān)家們可以使用這些平臺(tái)為眾多應(yīng)用提出和實(shí)施他們的算法。















 
 
 









 
 
 
 