自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Cadence 在 Flow 區(qū)塊鏈上進(jìn)行智能合約編程的新手指南

譯文
區(qū)塊鏈
由于去中心化應(yīng)用程序 (DApps) 的需求不斷增長(zhǎng),智能合約編程最近也獲得了極大的歡迎。智能合約是在區(qū)塊鏈網(wǎng)絡(luò)上運(yùn)行的自動(dòng)執(zhí)行協(xié)議,其中以太坊是非常熱門的一種。

由于去中心化應(yīng)用程序 (DApps) 的需求不斷增長(zhǎng),智能合約編程最近獲得了極大的歡迎。智能合約是在區(qū)塊鏈網(wǎng)絡(luò)上運(yùn)行的自動(dòng)執(zhí)行協(xié)議其中太坊是非常熱門的一種。然而,隨著對(duì)更具可擴(kuò)展性和效率的區(qū)塊鏈解決方案的需求不斷增長(zhǎng),新的區(qū)塊鏈網(wǎng)絡(luò)(如 Flow)正在出現(xiàn)。

Flow 是一個(gè)專為 DApp 和數(shù)字資產(chǎn)設(shè)計(jì)的區(qū)塊鏈網(wǎng)絡(luò)。它由 CryptoKitties 的創(chuàng)建者 Dapper Labs 創(chuàng)建,并在 NFT 領(lǐng)域越來(lái)越受歡迎。Flow 建立在一種名為 Cadence 的獨(dú)特編程語(yǔ)言之上,該語(yǔ)言旨在使智能合約編程更易于訪問(wèn)、更安全。

在本文中,我們將提供有關(guān) Flow 區(qū)塊鏈上 Cadence 和智能合約編程的速成課程。我們將介紹 Cadence 的基礎(chǔ)知識(shí),并解釋如何在 Flow 網(wǎng)絡(luò)上編寫智能合約。我們還將討論將 Flow 用于 DApp 和數(shù)字資產(chǎn)的好處。

什么是Cadence?

Cadence 是一種安全可靠的編程語(yǔ)言,專為 Flow 區(qū)塊鏈上的智能合約和 DApp 而設(shè)計(jì)。它是一種面向資源的語(yǔ)言,專注于提高智能合約編程的安全性和效率。Cadence 使用一種易于閱讀和理解的語(yǔ)法,即使對(duì)于非程序員也是一樣簡(jiǎn)單。

Cadence 的主要特性之一是面向資源的編程。資源是程序操作的主要對(duì)象,是具有狀態(tài)并且可以由帳戶擁有的對(duì)象。Cadence 還支持引用類型的使用,引用類型是不屬于任何帳戶的對(duì)象,可以在不同資源之間共享。

Cadence 的要特性之二是類型系統(tǒng)。Cadence 擁有強(qiáng)大的類型系統(tǒng),可確保類型安全并消除常見(jiàn)的編程錯(cuò)誤,如防止空指針異常和類型不匹配錯(cuò)誤等。

以上兩種特性使得編寫安全高效的智能合約變得容易。

在 Flow 網(wǎng)絡(luò)上編寫智能合約

要在 Flow 網(wǎng)絡(luò)上編寫智能合約,您需要對(duì) Cadence 有基本的了解。在本節(jié)中,我們將引導(dǎo)您完成在 Flow 網(wǎng)絡(luò)上編寫簡(jiǎn)單智能合約的步驟。

創(chuàng)建一個(gè)新的智能合約

在 Flow 網(wǎng)絡(luò)上編寫智能合約的第一步是創(chuàng)建一個(gè)新的智能合約。為此,您需要在計(jì)算機(jī)上設(shè)置開(kāi)發(fā)環(huán)境。您可以使用多種開(kāi)發(fā)環(huán)境在 Flow 網(wǎng)絡(luò)上編寫智能合約,包括 Visual Studio Code 和 Atom。

設(shè)置開(kāi)發(fā)環(huán)境后,您可以創(chuàng)建一個(gè)新的智能合約文件。在 Visual Studio Code 中,您可以通過(guò)單擊資源管理器窗格中的“新建文件”按鈕來(lái)創(chuàng)建新文件。在 Atom 中,您可以通過(guò)單擊文件樹(shù)中的“新建文件”按鈕來(lái)創(chuàng)建新文件。

在您的新智能合約文件中,您需要使用 Cadence 語(yǔ)法定義合約。Cadence中定義智能合約的基本語(yǔ)法如下:

pub contract MyContract { 

// 定義合約變量
var myVariable: Int 

// 定義一個(gè)讀取變量的公共函數(shù)
pub fun  getMyVariable () : Int { 
return myVariable 
} 

// 定義一個(gè)設(shè)置變量的公共函數(shù)
pub fun  setMyVariable (newValue: Int ) { 
myVariable = newValue 
} 

}

在這個(gè)例子中,我們定義了一個(gè)名為“MyContract”的新智能合約。我們正在定義一個(gè)名為“myVariable”的存儲(chǔ)變量,它是 Int 類型。該合約還包括兩個(gè)公共函數(shù):“getMyVariable”和“setMyVariable”。

“getMyVariable”函數(shù)是一個(gè)只讀函數(shù),返回“myVariable”的當(dāng)前值。該函數(shù)不會(huì)修改合約的狀態(tài)。

另一方面,“setMyVariable”函數(shù)是通過(guò)將“myVariable”的值設(shè)置為輸入?yún)?shù)“newValue”來(lái)修改合約狀態(tài)的函數(shù)。

數(shù)據(jù)類型

與 Solidity 一樣,Cadence 也有許多變量數(shù)據(jù)類型。一些數(shù)據(jù)類型包括:

  1. Int- 任意大小的有符號(hào)整數(shù)
  2. UInt- 任意大小的無(wú)符號(hào)整數(shù)
  3. Bool- 布爾值truefalse
  4. String- 任意長(zhǎng)度的文本字符串
  5. Address- 一個(gè) 20 字節(jié)的以太坊式地址
  6. Character- 單個(gè) UTF-8 字符
  7. Array- 相同類型的元素列表
  8. Dictionary- 鍵值對(duì)的集合,其中鍵是一種類型,值可以是另一種類型

Flow Playground

Flow Playground 是一個(gè)在線代碼編輯器,允許您編寫、測(cè)試和部署 Cadence 智能合約,無(wú)需設(shè)置本地開(kāi)發(fā)環(huán)境使用更方便。

要使用 Flow Playground,您需要使用 Flow 創(chuàng)建一個(gè)帳戶。創(chuàng)建帳戶后,您可以訪問(wèn) Flow Playground 并創(chuàng)建新項(xiàng)目。在項(xiàng)目中,您可以為您的 Cadence 智能合約創(chuàng)建一個(gè)新文件。

下面是 Cadence 中一個(gè)簡(jiǎn)單的智能合約示例,它存儲(chǔ)一個(gè)值并允許檢索它:

pub contract SimpleStorage { 
 // 聲明一個(gè)公共變量來(lái)存儲(chǔ)一個(gè)整數(shù)值
 pub var value: Int 

 // 公共函數(shù)用于設(shè)置值
 pub fun  setValue (newValue: Int ) { 
 self.value = newValue 
 } 

 // 公共函數(shù)用于獲取值
 pub fun  getValue () : Int { 
 return self.value 
 } 
}

在這個(gè)智能合約中,我們聲明了一個(gè)公共的變量value來(lái)存儲(chǔ)一個(gè)整數(shù)值。我們還有兩個(gè)公共函數(shù)setValuegetValue,它們?cè)试S我們?cè)O(shè)置和檢索值。

部署 Cadence 智能合約

要部署 Cadence 智能合約,您需要擁有 Flow 帳戶并設(shè)置開(kāi)發(fā)環(huán)境。您還需要安裝 Flow CLI,這是一個(gè)用于與 Flow 區(qū)塊鏈交互的命令行界面工具。

設(shè)置開(kāi)發(fā)環(huán)境并安裝 Flow CLI 后,您可以使用以下命令將智能合約部署到 Flow 區(qū)塊鏈:

flow project deploy --network NETWORK_NAME

在 Flow 上編寫和部署智能合約

現(xiàn)在我們已經(jīng)介紹了 Cadence 的基礎(chǔ)知識(shí)和 Flow 區(qū)塊鏈上的智能合約編程,讓我們來(lái)看看在 Flow 上編寫和部署簡(jiǎn)單智能合約的過(guò)程。

對(duì)于這個(gè)例子,我們將創(chuàng)建一個(gè)簡(jiǎn)單的合約,允許用戶存儲(chǔ)和檢索字符串消息。

首先,我們將創(chuàng)建一個(gè)新的項(xiàng)目目錄并使用 npm 對(duì)其進(jìn)行初始化。

mkdir  my-project
cd my-project
npm init -y

接下來(lái),我們將安裝 Flow CLI 并創(chuàng)建一個(gè)新的 Flow 項(xiàng)目。

npm install -g @onflow /cli
flow init

這將創(chuàng)建一個(gè)新 Flow 項(xiàng)目,并創(chuàng)建flow.json,該文件指定網(wǎng)絡(luò)配置和合約路徑。

下面,讓我們?cè)?/span>cadence目錄中創(chuàng)建一個(gè)新的合約文件Message.cdc。

mkdir cadence
touch cadence/Message.cdc

我們將定義一個(gè)簡(jiǎn)單的合約來(lái)存儲(chǔ)和檢索消息。

// cadence/Message.cdc

 pub contract Message { 
 // 定義公共字段來(lái)存儲(chǔ)消息
 pub var message: String 

 // 設(shè)置消息的公共函數(shù)
 pub fun  setMessage (_message: String ) { 
 self.message = _message 
 } 

 // 讀取消息的公共函數(shù)
 pub fun  getMessage () : String { 
 return self.message 
 } 
}

該合約定義了一個(gè)公共字段message來(lái)存儲(chǔ)消息,以及兩個(gè)公共函數(shù)setMessage,getMessage分別設(shè)置和檢索消息。

接下來(lái),我們將把合約部署到 Flow 模擬器上進(jìn)行測(cè)試。首先,我們需要啟動(dòng)模擬器。

flow emulator start

這將在localhost:3569啟動(dòng)模擬器。

接下來(lái),我們將使用 Flow CLI 部署合約。

flow project deploy --network emulator

這將編譯合約并將其部署到模擬器。CLI 將輸出合約地址,我們將使用該地址與合約進(jìn)行交互。

現(xiàn)在,讓我們使用 Flow CLI 與合約進(jìn)行交互。

首先,我們將使用該函數(shù)設(shè)置一條消息setMessage。

flow transactions send ./cadence/transactions/set-message.cdc --signer emulator-account

這將向合約發(fā)送消息以設(shè)置交易。CLI 將提示我們輸入消息。

接下來(lái),我們將使用該函數(shù)檢索消息getMessage。

flow scripts execute ./cadence/scripts/get-message.cdc --signer emulator-account

這將執(zhí)行一個(gè)腳本來(lái)檢索消息。CLI 將輸出消息。

恭喜!您剛剛使用 Cadence 在 Flow 區(qū)塊鏈上編寫并部署了一個(gè)簡(jiǎn)單的智能合約。

結(jié)論

在本文中,我們介紹了 Cadence 的基礎(chǔ)知識(shí)和 Flow 區(qū)塊鏈上的智能合約編程。我們討論了使用 Cadence 進(jìn)行智能合約編程的好處,并探討了該語(yǔ)言的關(guān)鍵概念和語(yǔ)法。我們還介紹了在 Flow 上編寫和部署簡(jiǎn)單智能合約的過(guò)程。

隨著 Flow 生態(tài)系統(tǒng)的不斷發(fā)展,Cadence 正成為希望在平臺(tái)上構(gòu)建去中心化應(yīng)用程序的開(kāi)發(fā)人員越來(lái)越重要的工具。無(wú)論您是經(jīng)驗(yàn)豐富的區(qū)塊鏈開(kāi)發(fā)人員還是剛剛開(kāi)始智能合約編程,學(xué)習(xí) Cadence 都是您工具包中的一項(xiàng)寶貴技能。

我們希望本次速成課程為您提供了 Cadence 和 Flow 智能合約編程的堅(jiān)實(shí)基礎(chǔ)。

譯者介紹

張業(yè)貴,51CTO社區(qū)編輯,從事企業(yè)信息化建設(shè)多年,致力于信息集成、數(shù)據(jù)治理和人工智能應(yīng)用等。

原文標(biāo)題:A Beginner’s Guide to Smart Contract Programming on the Flow Blockchain with Cadence,作者:Lea Lobanov


責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2022-10-18 08:00:00

2022-05-29 10:19:08

區(qū)塊鏈智能合約編程語(yǔ)言

2022-02-13 23:05:23

加密貨幣比特幣貨幣

2021-11-02 10:25:19

區(qū)塊鏈智能合約

2021-03-25 16:34:10

區(qū)塊鏈加密資產(chǎn)技術(shù)

2020-12-17 08:00:00

區(qū)塊鏈數(shù)據(jù)以太坊

2021-04-23 10:59:07

區(qū)塊鏈貨幣私鑰

2022-05-16 15:37:32

開(kāi)源軟件

2022-04-08 12:56:52

Linux終端命令

2010-06-07 16:10:53

HadoopOnDem

2025-01-13 07:15:00

Monorepo代碼倉(cāng)庫(kù)中項(xiàng)目代碼管理

2022-10-26 08:00:00

2019-01-18 05:22:39

區(qū)塊鏈智能合約網(wǎng)絡(luò)安全

2023-07-04 20:15:00

2023-03-01 08:00:00

機(jī)器學(xué)習(xí)數(shù)據(jù)集

2010-06-21 12:39:56

OSPF路由協(xié)議

2021-09-14 10:28:25

區(qū)塊鏈以太坊數(shù)據(jù)

2009-11-16 08:58:43

PHP語(yǔ)言

2010-05-27 10:42:38

SVN配置文檔

2010-05-26 13:51:40

SVN安裝使用手冊(cè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)