日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对于以太坊的Solidity语言介绍

發布時間:2023/12/13 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对于以太坊的Solidity语言介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Solidity是什么

  • Solidity是一門面向合約的、為實現智能合約而創建的高級編程語言,主要目的是為了在以太坊虛擬機(EVM)上運行
  • Solidity是靜態語言,支持繼承、庫和復雜的用戶定義等特性
  • 內含的類型除了常見的編程語言中的標準類型,還包括address等以太坊獨有的類型,solidity源碼文件通常以sol作為擴展名
  • 目前對于solidity語言編程最好的是Remix。remix是一個基于Web瀏覽器的IDE,它可以編寫、部署智能合約

Solidity的語言特性

  • Solidity語法接近于JavaScript,是一種面向對象的語言,但是因為Solidity是為了編寫真正意義上的運行在網絡中的去中心化合約,與傳統的語言相比具有很多的不同點
  • 以太坊底層是基于賬戶,而不是UTXO,所以增加了一個特殊的address的數據類型用于定位用戶和合約賬戶
  • 語言內嵌框架就支持支付,提供了和支付相關的payable關鍵字,可以在語言層面上直接支持支付
  • 使用區塊鏈進行數據存儲,數據中的每一個狀態都可以永久存儲,所以在合約中定義變量是需要指定使用內存還是區塊鏈存儲
  • 運行環境是在去中心化的網絡上,所以需要強調合約或者函數執行的調用方式
  • 不同的異常機制。遵循原子特性,一旦出現異常,所有的執行都會被回撤,這主要是為了保證合約執行的原子特性,防止出現中間狀態出現數據不一致的情況

Solidity源碼和智能合約

  • solidity源代碼要想成為可以運行在以太坊上的智能合約需要經歷以下步驟
  • 用Solidity編寫的智能合約源代碼需要使用編譯器編譯為成為字節碼文件(bytecode),編譯過程中會同時產生智能合約的二進制接口規范(Application Binary Interface,簡稱為ABI)
  • 通過交易(Transaction)的方式將字節碼部署到以太坊網絡,每次成功部署都會產生一個新的智能合約賬戶
  • 使用JavaScript編寫的DApp通常通過修改web3.js+ABI去調用智能合約中的函數來實現對于數據的讀取和修改

Solidity編譯器

Remix

  • Remix是一個基于web瀏覽器的Solidity IDE,可在線使用而且不需要安裝任何東西

solcjs

  • Solcjs是Solidity的源碼庫的構建目標之一,是Solidity的命令行編譯器
  • 使用npm可以便攜地安裝Solidity編譯器solcjs
  • 默認是安裝在/opt/node-v9.0.0-linux-x64的文件夾下,可以使用軟連接映射到/usr/local/bin文件夾下

命令如下

npm install -g solc

?

?

總結

以上是生活随笔為你收集整理的对于以太坊的Solidity语言介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。