对于以太坊的Solidity语言介绍
生活随笔
收集整理的這篇文章主要介紹了
对于以太坊的Solidity语言介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Solidity是什么
- Solidity是一門面向合約的、為實現(xiàn)智能合約而創(chuàng)建的高級編程語言,主要目的是為了在以太坊虛擬機(EVM)上運行
- Solidity是靜態(tài)語言,支持繼承、庫和復(fù)雜的用戶定義等特性
- 內(nèi)含的類型除了常見的編程語言中的標(biāo)準(zhǔn)類型,還包括address等以太坊獨有的類型,solidity源碼文件通常以sol作為擴展名
- 目前對于solidity語言編程最好的是Remix。remix是一個基于Web瀏覽器的IDE,它可以編寫、部署智能合約
Solidity的語言特性
- Solidity語法接近于JavaScript,是一種面向?qū)ο蟮恼Z言,但是因為Solidity是為了編寫真正意義上的運行在網(wǎng)絡(luò)中的去中心化合約,與傳統(tǒng)的語言相比具有很多的不同點
- 以太坊底層是基于賬戶,而不是UTXO,所以增加了一個特殊的address的數(shù)據(jù)類型用于定位用戶和合約賬戶
- 語言內(nèi)嵌框架就支持支付,提供了和支付相關(guān)的payable關(guān)鍵字,可以在語言層面上直接支持支付
- 使用區(qū)塊鏈進(jìn)行數(shù)據(jù)存儲,數(shù)據(jù)中的每一個狀態(tài)都可以永久存儲,所以在合約中定義變量是需要指定使用內(nèi)存還是區(qū)塊鏈存儲
- 運行環(huán)境是在去中心化的網(wǎng)絡(luò)上,所以需要強調(diào)合約或者函數(shù)執(zhí)行的調(diào)用方式
- 不同的異常機制。遵循原子特性,一旦出現(xiàn)異常,所有的執(zhí)行都會被回撤,這主要是為了保證合約執(zhí)行的原子特性,防止出現(xiàn)中間狀態(tài)出現(xiàn)數(shù)據(jù)不一致的情況
Solidity源碼和智能合約
- solidity源代碼要想成為可以運行在以太坊上的智能合約需要經(jīng)歷以下步驟
- 用Solidity編寫的智能合約源代碼需要使用編譯器編譯為成為字節(jié)碼文件(bytecode),編譯過程中會同時產(chǎn)生智能合約的二進(jìn)制接口規(guī)范(Application Binary Interface,簡稱為ABI)
- 通過交易(Transaction)的方式將字節(jié)碼部署到以太坊網(wǎng)絡(luò),每次成功部署都會產(chǎn)生一個新的智能合約賬戶
- 使用JavaScript編寫的DApp通常通過修改web3.js+ABI去調(diào)用智能合約中的函數(shù)來實現(xiàn)對于數(shù)據(jù)的讀取和修改
Solidity編譯器
Remix
- Remix是一個基于web瀏覽器的Solidity IDE,可在線使用而且不需要安裝任何東西
solcjs
- Solcjs是Solidity的源碼庫的構(gòu)建目標(biāo)之一,是Solidity的命令行編譯器
- 使用npm可以便攜地安裝Solidity編譯器solcjs
- 默認(rèn)是安裝在/opt/node-v9.0.0-linux-x64的文件夾下,可以使用軟連接映射到/usr/local/bin文件夾下
命令如下
npm install -g solc?
?
總結(jié)
以上是生活随笔為你收集整理的对于以太坊的Solidity语言介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++primer 第 2 章 变量和基
- 下一篇: IPFS的文件存储模式