Solidity語言學習(1)—— 開篇
Solidity是一種智慧合約的高階語言,執行在Ethereum虛擬機器(EVM)之上。
Solidity與其它語言相關的特點?
它的語法接近於JavaScript,是一種面向物件的語言。但作為一種真正意義上執行在網路上的去中心合約,它又有很多的不同,下面列舉一些:
- 以太坊底層是基於賬戶,而非UTXO的,所以有一個特殊的Address的型別。用於定位使用者,定位合約,定位合約的程式碼(合約本身也是一個賬戶)。
- 由於語言內嵌框架是支援支付的,所以提供了一些關鍵字,如payable,可以在語言層面直接支援支付,而且超級簡單。
- 儲存是使用網路上的區塊鏈,資料的每一個狀態都可以永久儲存,所以需要確定變數使用記憶體,還是區塊鏈。
- 執行環境是在去中心化的網路上,會比較強調合約或函式執行的呼叫的方式。因為原來一個簡單的函式呼叫變為了一個網路上的節點中的程式碼執行,分散式的感覺。
- 最後一個非常大的不同則是它的異常機制,一旦出現異常,所有的執行都將會被回撤,這主要是為了保證合約執行的原子性,以避免中間狀態出現的資料不一致。
相關推薦
Solidity語言學習(1)—— 開篇
Solidity是一種智慧合約的高階語言,執行在Ethereum虛擬機器(EVM)之上。 Solidity與其它語言相關的特點? 它的語法接近於JavaScript,是一種面向物件的語言。但作為一種真正意義上執行在網路上的去中心合約,它又有很多的不同,下面列舉一些: 以太
Solidity語言學習(3)——智慧合約原始檔基本要素
合約類似面嚮物件語言中的類。 支援繼承 每個合約中可包含 狀態變數(state Variables),函式(function),函式修飾符(Function Modifiers),事件(Events),結構型別(Structs Types)和 列舉型別(Enum Types)
Solidity 語言學習(2)—— Solidity智慧合約檔案結構
版本申明 pragma solidity ^0.4.0; 說明: 1 版本要高於0.4才可以編譯 2 表示高於0.5的版本則不可編譯,第三位的版本號但可以變,留出來用做bug可以修復(如 0.4.1的編譯器有bug,可在0.4.2 修復,現有合約不用該程式碼)。 引用其他
Solidity語言學習(10) —— Solidity彙編(Solidity Assembly)
solidity定義一個組合語言,這個語言可以在沒有Solidity下使用。該組合語言也能在Solidity原始碼中被用作“內聯”。我們從這樣使用內聯彙編以及怎樣區分其與離線彙編開始介紹,然後接下來詳細介紹彙編。 內聯彙編(Inline Assembly) 為了更細膩的控制,尤其是通
Solidity語言學習——(三)
智慧推斷: 使用var關鍵字時,第一次賦值給變數,編譯器會自動推斷變數的型別,而且推斷後不能更改這個變數的型別了,如果更改了就會出錯,還有就是不能在函式引數中使用。注意:有時候var會推斷出一個錯誤的型別。 案例: pragma solidity ^0.4.18; c
EA&UML日拱一卒-0基礎學習微信小程式(1)- 開篇
這次選了一個時髦的話題,同時也是一個真正從0開始的話題----微信小程式。說它時髦當然是因為這東西出來沒多長時間,許多開發者不要說做過,恐怕連用都沒有用過。說從0開始是因為作者本人不光是對微信小程式沒有概念,恐怕對開發中用到的技術,手法同樣沒有經驗。 選題的目的 第一當
Solidity語言實戰(一)Solidity語言的簡介(原創學習日誌未經作者許可請勿私自轉載)
you 進度 教程 學習方式 work window lock .com 快速學習 開頭想對partner說的話 首先,對前兩天的情緒失控感到抱歉,趁著剛好的周末,我思考了一下這個問題,既然已經要開始做這個項目了,就要好好做。我們在這個方面都是零基礎,我希望通過這
redis學習(1)--- NoSQL介紹
redis學習 模型 width 快速查詢 init 文件 borde 處理 only 一、NoSQL介紹 1、什麽是NoSQL NoSQL = Not Only SQL 非關系型數據庫 2、為什麽用NoSQL High performance - 高
ArcGIS API for JavaScript學習(1):第一個地圖
樣式表 參數 資源 charset 底層 arcgis 順序 api navi 1.簡介 ArcGIS API for JavaScript跟隨ArcGIS 9.3同時發布,是ESRI根據JavaScript技術實現的調用ArcGIS Server REST API接口的一
Linux學習(1)
linux開始學習Linux了,希望能學有所成————測試中本文出自 “Linux學習” 博客,請務必保留此出處http://mmchy.blog.51cto.com/13044974/1941714Linux學習(1)
facets學習(1):什麽是facets
遺失 air 不同的 無縫切換 over 快速 後來 樣式 觀察 ML 數據集可以包含數億個數據點,每個數據點由數百(甚至數千)的特征組成,幾乎不可能以直觀的方式了解整個數據集。為幫助理解、分析和調試 ML 數據集,谷歌開源了 Facets,一款可視化工具。 Facets
【開源分享:入門到精通ASP.NET MVC+EF6+Bootstrap】從這裏開始,一起搭框架(1)開篇介紹
strong src 擁有 ckeditor 開發 技術分享 mdi 控制 https 框架簡介 這幾年一直在做ASP.NET開發,幾年前做項目都是老老實實一行行的寫代碼,後來發現那些高手基本都會有自己積累起來的代碼庫,現在稱之為開發框架,基礎代碼不用再去堆,
C++學習(1):最大子段和(多種解法)
多少 問題: code namespace 數據 組成 amp using () 問題:給定由n個數(可能為負數)組成的序列a1,a2,a3,...,an,求該序列子段和的最大值。 第一種解法:(最容易考慮的方法,將所有的子段一一相加,然後比較) 1 #include&
嵌入式開發學習(1)<ARM體系結構>
特點 如何 現在 訪問 任務 物聯網 嵌入 專用 arm1 SoC : 在cpu 裏內嵌了很多外設,現在所說的cpu 實際上都是SoC。 32位cpu指的是數據總線是32位的。 32位的地址總線尋址範圍是4G。2的32次方。 CISC complex instruction
在STM32上實現NTFS之4:GPT分區表的C語言實現(1):主GPT表頭的實現
center mbr分區 sum 對齊 字節數 決定 容器 alt 水平 題外話:在荒廢了很久沒有更新之後……某日突然收到讀者的站內信!內容大體是詢問GPT分區表信息的讀取方式,筆者激動萬分之下,決定繼續解剖NTFS……其實GPT嚴格上不算是NTFS的內容, GPT和M
IDEA 學習筆記之 Java項目開發深入學習(1)
java項目 bsp 重構 str 代碼提示 log pan ora tro Java項目開發深入學習(1): 定義編譯輸出路徑: 繼承以上工程配置 重新定義新的項目編譯路徑 添加source目錄:點擊添加,再點擊移除: 編譯項目: 常用快捷鍵總結: Ctr
nodejs學習(1)
管理工具 cti 分享 環境 scrip alt world 命令提示符 true 1.安裝:可以在http://nodejs.org/dist/下載nodejs的所有版本,我在裏面下載了node-v8.9.0-x64.msi,安裝完成,在命令提示符中輸入“node --v
R語言學習(7)字符串和因子
const sprint 水平 tostring 大小 pow 個數 end paste 字符串和因子 1.字符串 創建字符串 > c("Hello","World")[1] "Hello" "World" paste( ) 函數連接字符串 >
Win10下Docker學習(1)安裝
ner table 組成 高效率 down 提高 打開 cpu 其他人 Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,
Vue深度學習(1)
msg 第一個 數據綁定 vue.js 這就是 one round 本質 dex Hello World 現在就讓我們來寫第一個vue.js的實例。如下代碼: html代碼: <div id="demo"> {{ message }}