成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊區塊鏈技術的開發

區塊鏈
本文將向大家提供有關區塊鏈技術開發入門時應該了解的一切的簡要概述,在這里給大家展示的是學習區塊鏈應用程序開發的基礎知識,由區塊鏈提供支持的去中心化應用程序(Dapps)。

[[396445]]

本文轉載自微信公眾號「區塊鏈研究實驗室 」,作者鏈三豐。轉載本文請聯系區塊鏈研究實驗室公眾號。

概述

本文將向大家提供有關區塊鏈技術開發入門時應該了解的一切的簡要概述,在這里給大家展示的是學習區塊鏈應用程序開發的基礎知識,由區塊鏈提供支持的去中心化應用程序(Dapps)。

有許多不同的區塊鏈為我們的Dapp提供動力,而最大的就是我們所知的以太坊。

為了與以太坊生態系統進行交互,則需要一個以太坊錢包和一些以太坊。Metamask,是最受歡迎的以太坊錢包之一。

以太坊錢包分為三個部分:

  • 以太坊賬戶-可以發送和接收以太坊的實體
  • 公鑰-用戶可以將以太坊發送給的地址
  • 私鑰—訪問您的以太坊

使用以太坊錢包與以太坊網絡中的Dapp進行交互,假設您想將以太坊交易為另一種加密貨幣,您可以通過去中心化交易所Uniswap進行交易來做到這一點。

Uniswap由以太坊區塊鏈提供支持,它基于智能合約所運行,而智能合約,它是區塊鏈上的程序。

智能合約包括三個主要部分:

  • 用戶-使用智能合約的人。
  • 代碼-使用智能合約時會發生什么。
  • 存儲-智能合約將更改的對象。

Dapp是用許多智能合約編寫的,例如:Uniswap是由許多智能合約提供支持的Dapp。

Dapps在Web開發中可與后端或服務器端相媲美,客戶端將連接到以太坊虛擬機上的智能合約,而不是連接到集中式服務器。

那么,我們如何為Dapp創建智能合約?

引入Solidity

Solidity是一種用于EVM的高級編程語言,您可以在Solidity中編寫智能合約。

我們將探索智能合約的一些基本語法和一般結構,然后將為自己的令牌編寫一個簡單的合同。

如果您熟悉另一種編程語言,您會發現一些問題,

  • 布爾值—正確或錯誤
  • Uint —整數(數字確定X冪的大小)
  • 地址-以太坊地址
  • 字符串—文本

這是您將在Solidity中使用的基本數據結構,

  • 數組-從零開始的項目列表(可以是固定數字或動態數字)
  • 映射—存儲具有鍵值對的數據
  • 結構-用于定義存儲變量的新方法
  • 枚舉-創建自己的數據結構

設置可見性是智能合約開發的重要組成部分,這樣您的私人地址將不為公開,而這些關鍵字可以應用于變量和函數,

  • 公開-任何人都可以調用此功能
  • 私人-只有合同可以調用此功能
  • 查看—此函數返回數據且不修改數據
  • 純-函數將不會修改,甚至不會讀取合同的數據
  • 應付賬款—功能可以接收以太坊

您將大量使用公共和私人的資源,擁有這些,我們就可以開始編寫一些代碼了。

制作MediumToken

首先,我們使用Pragma關鍵字聲明solidity的版本,然后將Solidity指定為編譯器以及什么版本。

讓我們來看一個例子:

  1. pragma solidity >=0.4.22 <0.6.0; 

這是開發過程中的重要一步,編寫驚人的智能合約只是為了發現編譯器不能與您使用的Solidity版本配合使用。

我們將為Medium創建一個令牌,我們稱它為MediumToken。

接下來,我們需要實際聲明合同。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 

這里只需添加令牌的基本結構即可。

智能合約需要具有構造函數,當我們的代碼部署到區塊鏈時,該功能將運行一次。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 
  3. constructor() public { 
  4. address owner = msg.sender; 
  5.     } 

在這里,我們聲明的地址變量等于msg.sender,這是調用該函數的人員的地址。又是你

在構造函數中,我們需要做的另一件事是鑄造MediumTokens,設置電源。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 
  3. constructor() public { 
  4. address owner = msg.sender; 
  5. balance[owner] = 420;   } 

此時您鑄造了420個MediumToken,該數字是您想要的任何數字。構造函數運行后,我們需要創建所有余額的映射。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 
  3. constructor() public { 
  4. address owner = msg.sender; 
  5. balance[owner] = 420;   } 
  6. mapping (address => uint256) public balances; 

這是一個公共映射,意味著任何人都可以看到它并與其進行交互。

接下來,我們需要編寫一個函數,該函數將允許用戶發送其MediumToken。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 
  3. constructor() public { 
  4. address owner = msg.sender; 
  5. balance[owner] = 420;   } 
  6. mapping (address => uint256) public balances; 
  7. function send(uint amount, address recipient) public { 
  8. require(balances[msg.sender] >= amount); 
  9. require(balances[msg.sender] -amount <= balances[msg.sender]);  require(balances[recipient] + amount >= balances[recipient]); 
  10. balances[msg.sender] -= amount; // Always subtract first  balances[recipient] += amount; // Add amount to recipient 
  11.     } 

讓我們分解一下,我們的send函數將接受uint形式的金額,它還可以接受收件人的地址,而且此功能將是公開的,因此任何人都可以看到它。

此時我們要做的第一件事是創建一些require語句,這樣我們就可以檢查發送者的錢包中是否確實有令牌數量。

另外2項要求聲明是安全措施,第一個是確保發送方在發送令牌后的余額小于或等于;第二個是確保收款人的地址大于或等于交易前的地址。

  1. require(balances [msg.sender] -amount <= balances [msg.sender]); 

如上述操作,我們創建了420個MediumToken,將它們分配給所有者,并創建了將其發送出去的功能!

如果您想再次查看它,這是完整的代碼。

  1. pragma solidity >=0.4.22 <0.6.0; 
  2. contract MediumToken { 
  3. constructor() public { 
  4. address owner = msg.sender; 
  5. balance[owner] = 420;   } 
  6. mapping (address => uint256) public balances; 
  7. function send(uint amount, address recipient) public { 
  8. require(balances[msg.sender] >= amount); 
  9. require(balances[msg.sender] -amount <= balances[msg.sender]);  require(balances[recipient] + amount >= balances[recipient]); 
  10. balances[msg.sender] -= amount; // Always subtract first  balances[recipient] += amount; // Add amount to recipient 
  11.     } 

 

如果您完成了最終合同,您就可以將其部署到區塊鏈上。

 

責任編輯:武曉燕 來源: 區塊鏈研究實驗室
相關推薦

2018-06-25 09:32:44

2022-11-01 08:46:20

責任鏈模式對象

2018-11-29 09:13:47

CPU中斷控制器

2020-08-12 08:34:16

開發安全We

2016-08-03 13:36:01

2018-04-04 14:43:27

虛擬機保護技術

2019-03-20 14:29:46

Linux虛擬內存

2020-11-06 07:10:21

5G定位

2022-07-28 10:39:31

工業4.0供應鏈

2021-06-30 07:19:35

微服務業務MySQL

2020-09-08 06:54:29

Java Gradle語言

2023-07-06 13:56:14

微軟Skype

2024-03-08 09:51:12

Linux網絡性能

2018-06-07 13:17:12

契約測試單元測試API測試

2022-02-09 16:23:07

網絡安全零信任技術

2022-06-17 11:03:11

5G安全隱私

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2021-12-06 09:43:01

鏈表節點函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成ee人免费视频 | 久久精品91久久久久久再现 | 国产成人免费视频网站高清观看视频 | 国产精品免费视频一区 | 亚洲精品91| 国产高清精品一区二区三区 | 一区欧美 | 成人黄色在线观看 | 亚洲国产精品人人爽夜夜爽 | 久久免费精品视频 | 国产中文视频 | 97视频人人澡人人爽 | 久国久产久精永久网页 | 中文字幕国产高清 | 亚洲国产欧美91 | 日韩精品一区二区三区在线播放 | 欧美日韩国产在线 | 午夜爽爽爽男女免费观看 | 国产一区二区在线免费观看 | 欧美精品中文 | 99精品一级欧美片免费播放 | 亚洲三级在线观看 | 国产99久久精品一区二区300 | 精品日韩一区二区三区av动图 | 国产自产21区 | 欧美aaaaaaaa| 日韩av黄色 | 日韩欧美一级精品久久 | 日韩一区二区免费视频 | 亚洲一区二区不卡在线观看 | 亚洲一区视频在线 | 久久久av一区 | 狠狠色香婷婷久久亚洲精品 | 亚洲第一区国产精品 | 久久综合九色综合欧美狠狠 | 亚洲精品二区 | 久久国产精品亚洲 | 精品国产乱码久久久久久影片 | 中文字幕男人的天堂 | 国产精品一区三区 | 国产欧美精品 |