DAML:區(qū)塊鏈中智能合約的編程語言
DAML 智能合約語言是一種專門設(shè)計(jì)的特定領(lǐng)域語言domain specific language(DSL),用于編碼應(yīng)用的共享業(yè)務(wù)邏輯。它用于區(qū)塊鏈環(huán)境中分布式應(yīng)用的開發(fā)和部署。
區(qū)塊鏈技術(shù)是一種安全機(jī)制,以一種使人難以或不可能修改或入侵的方式來跟蹤信息。區(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ù)庫并不保存在一個(gè)服務(wù)器或節(jié)點(diǎn)中。在區(qū)塊鏈中,交易被記錄在一個(gè)被稱為哈希hash的不可改變的加密符號中。這意味著,如果一個(gè)通道或鏈上的一個(gè)區(qū)塊被改變,黑客將很難改變鏈上的那個(gè)區(qū)塊,因?yàn)樗麄儽仨殞ν饷娴拿恳粋€(gè)版本的鏈都要這樣做。區(qū)塊鏈,如比特幣和以太坊,隨著新的區(qū)塊被添加到鏈上而不斷增長,這使得賬本更加安全。
隨著區(qū)塊鏈中智能合約的實(shí)施,在沒有任何人工干預(yù)的情況下,有了自動(dòng)執(zhí)行的場景。智能合約技術(shù)使得執(zhí)行最高級別的安全、隱私和反黑客實(shí)施成為可能。

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

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

Figure 3: Official portal of DAML
DAML 的主要特點(diǎn)是:
- 細(xì)粒度的權(quán)限
- 基于場景的測試
- 數(shù)據(jù)模型
- 業(yè)務(wù)邏輯
- 確定性的執(zhí)行
- 存儲(chǔ)抽象化
- 無重復(fù)開銷
- 負(fù)責(zé)任的跟蹤
- 原子的可組合性
- 授權(quán)檢查
- 需要知道的隱私
安裝和使用 DAML
DAML SDK 可以安裝在 Linux、macOS 或 Windows 上。在多個(gè)操作系統(tǒng)上安裝 DAML 的詳細(xì)說明可訪問 https://docs.daml.com/getting-started/installation.html 。
你必須具備以下條件才能使用 DAML:
- Visual Studio Code
- Java 開發(fā)套件(JDK)
DAML 可以通過下載并運(yùn)行可執(zhí)行的安裝程序在 Windows 上安裝,你可訪問
https://github.com/digital-asset/daml/releases/download/v1.18.1/daml-sdk-1.18.1-windows.exe 。
在 Linux 或 Mac 上安裝 DAML 可以通過在終端執(zhí)行以下內(nè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)目的依賴:

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

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



























