3.7 智慧合約與solidity簡介
- 智慧合約簡介
- 什麼是智慧合約:在電腦科學領域,智慧合約是指一種計算機協議。 這類協議一旦部署就能自我執行和自我驗證,不再需要人為干預
- 智慧合約的優點:
- 高效的實時更新
- 準確執行
- 較低的人為干預風險
- 去中心化權威
- 較低的執行成本
- 缺點:
- The DAO攻擊事件:合約存在漏洞導致大量以太幣被盜,而且因為智慧合約的去人為干預特性,使得漏洞無法線上修復。最終採用的辦法是分叉。所以,智慧合約需要保證合約程式碼的邏輯完整性和安全性,否則一旦受到攻擊,後果會非常嚴重
- 智慧合約的部署流程
- 啟動一個以太坊節點
- 使用solidity編寫智慧合約
- 編譯智慧合約
- 將編譯好的合約程式碼部署到以太坊上
- 使用web3.js庫所提供的js api呼叫合約
- solidity詳解
- 概述
- 以太坊擁有多種高階語言,可用於編寫智慧合約。最流行的一種叫做Solidity,它基於JavaScript。Solidity是迄今為止最成熟的以太坊語言,也是社群大力鼓勵開發人員現在使用的語言。
- 語法特點:它的語法接近於Javascript,是一種物件導向的語言。 但作為一種真正意義上執行在網路上的支援支付屬性的去中心合約語言,它與傳統程式語言相比、又有很多不同之處。
- 以太坊底層是基於帳戶,賬戶分為外部賬戶與合約賬戶,有一個特殊的Address的型別。用於定位使用者,定位合約,定位合約的程式碼(合約本身也是一個帳戶)
- 鑑於以太坊本身的支付屬性,因此在其內部框架中支援支付、擁有payable關鍵字,可以在語言層面直接支付
- 分為狀態變數(storage)和記憶體變數(memory),其中狀態變數會永久儲存在合約的儲存空間
- 可見性,solidity可見性不像其它程式設計一樣只分為private以及public等,它還有叫做internal以及external的可見性宣告方式
- 異常機制,使用solidty程式設計,一旦出現異常,所有的執行都將會被回滾,這主要是為了保證合約執行的原子性,以避免中間狀態出現的資料不一致
- 由於Solidity是一個靜態型別的語言,所以編譯時需明確指定變數的型別(包括本地變數或狀態變數),Solidity程式語言提供了一些基本型別(elementary types)可以用來組合成複雜型別
- 概述
-
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928 -
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- solidity投票智慧合約程式碼Solid
- 智慧合約語言 Solidity 教程系列1 – 型別介紹Solid型別
- 智慧合約語言 Solidity 教程系列5 - 陣列介紹Solid陣列
- 智慧合約語言 Solidity 教程系列8 – Solidity APISolidAPI
- 智慧合約語言 Solidity 教程系列8 - Solidity APISolidAPI
- 以太坊智慧合約 Solidity 的常用資料型別介紹Solid資料型別
- 智慧合約語言Solidity教程系列2 - 地址型別介紹Solid型別
- 區塊鏈——以太坊、智慧合約簡介區塊鏈
- 智慧合約從入門到精通:Solidity AssemblySolid
- 智慧合約從入門到精通:Solidity組合語言Solid組合語言
- 智慧合約語言 Solidity 教程系列6 - 結構體與對映Solid結構體
- 用solidity語言開發代幣智慧合約Solid
- 智慧合約從入門到精通:Solidity的特性與內部機制Solid
- 如何建立一個Solidity智慧合約專案? - OliverSolid
- 區塊鏈2.0以太坊智慧合約solidity之helloworld區塊鏈Solid
- 智慧合約最佳實踐 之 Solidity 編碼規範Solid
- eosio.token 智慧合約介紹
- 智慧合約語言Solidity的最佳VSCode 外掛SolidVSCode
- 用Solidity在Truffle上構建一個HelloWorld智慧合約Solid
- 智慧合約語言 Solidity 教程系列9 - 錯誤處理Solid
- 智慧合約語言 Solidity 教程系列3 - 函式型別Solid函式型別
- 使用 Browser-solidity 在 Go-Ethereum1.7.2 上進行簡單的智慧合約部署SolidGo
- DAPP代幣預售/智慧合約/NFT質押合約系統開發/Solidity編寫APPSolid
- solidity智慧合約開發工具Atom及其外掛安裝Solid
- 以太坊智慧合約開發第五篇:字串拼接—Solidity字串Solid
- Solidity之旅(十)OOP-抽象合約SolidOOP抽象
- 開發者福利!不學Solidity也能在迅雷鏈開發智慧合約了Solid
- 如何用web3j編譯solidity智慧合約原始碼Web編譯Solid原始碼
- 智慧合約語言 Solidity 教程系列4 - 資料儲存位置分析Solid
- 智慧合約系統開發原理介紹丨智慧合約開發原始碼詳情原始碼
- solidity案例詳解(二)眾籌合約Solid
- 智慧合約語言 Solidity 教程系列10 - 完全理解函式修改器Solid函式
- 智慧合約從入門到精通:用Solidity開發一個“Hello World”Solid
- 編寫一個簡單的智慧合約
- ATourofEthereum——區塊鏈與智慧合約之旅區塊鏈
- Solidity案例詳解(一)存錢罐合約Solid
- Solidity開發指南(六):合約結構解析Solid
- 保險智慧合約