以太坊發送事務
Ⅰ ethereum緗戠粶鐨勭敤娉曟槸浠涔堬紵
浠ュお鍧婏紙Ethereum錛夋槸涓涓寮婧愮殑錛屽尯鍧楅摼鎶鏈鍩虹鐨勫鉤鍙幫紝瀹冨厑璁稿紑鍙戣呭壋寤哄拰閮ㄧ講鏅鴻兘鍚堢害銆傝繖浜涙櫤鑳藉悎綰﹀彲浠ヨ嚜鍔ㄦ墽琛屼簨鍔★紝鏃犻渶絎涓夋柟浠嬪叆銆備互涓嬫槸涓浜涗互澶鍧婄綉緇滅殑鐢ㄦ硶錛
1.**寤虹珛鍘諱腑蹇冨寲搴旂敤錛圖Apps錛**錛氫互澶鍧婄殑鏍稿績鍔熻兘涔嬩竴灝辨槸浣垮紑鍙戣呭緱浠ュ湪鍏跺鉤鍙頒笂鏋勫緩鍜岃繍琛孌Apps銆傝繖浜涘簲鐢ㄤ笉鍙椾換浣曚釜浣撴垨緇勭粐鐨勬帶鍒訛紝涓斾笉闇瑕佷俊浠諱換浣曚腑蹇冩湇鍔″櫒銆
2.**鏅鴻兘鍚堢害**錛氫互澶鍧婂紑鍒涗簡鏅鴻兘鍚堢害鐨勬傚康錛岃繖縐嶅崗璁鍙浠ュ湪婊¤凍鏌愮嶆潯浠舵椂鑷鍔ㄦ墽琛屼氦鏄撱傛櫤鑳藉悎綰﹀彲浠ヨ鐢ㄤ簬鍚勭嶅満鍚堬紝鍖呮嫭閲戣瀺浜ゆ槗銆佷繚闄┿佸拰鎴垮湴浜х瓑銆
3.**浠e竵鍙戣**錛氫嬌鐢ㄤ互澶鍧婏紝寮鍙戣呭彲浠ュ壋寤鴻嚜宸辯殑鍔犲瘑璐у竵銆備緥濡傦紝璁稿氬垵濮嬩唬甯佸彂鍞錛圛CO錛夐兘浣跨敤浜嗕互澶鍧婄殑ERC-20鏍囧噯銆
4.**鍒嗗竷寮忚嚜娌葷粍緇囷紙DAO錛**錛氫互澶鍧婁篃鍙浠ュ壋寤篋AO錛岃繖縐嶇粍緇囧艦寮忓畬鍏ㄧ敱浠g爜榪愯岋紝娌℃湁涓蹇冪$悊鑰呫
5.**闈炲悓璐ㄥ寲浠e竵錛圢FTs錛**錛氫互澶鍧婃敮鎸丯FTs鐨勫彂琛岋紝榪欎簺浠e竵鏄鐙涓鏃犱簩鐨勶紝鍙鐢ㄤ簬琛ㄧず鍚勭嶇嫭鐗圭殑鉶氭嫙鎴栫幇瀹炰笘鐣岀殑鍟嗗搧鍜岃祫浜с
6.**Defi錛堝幓涓蹇冨寲閲戣瀺錛**錛氫互澶鍧婄綉緇滀篃琚騫挎硾鐢ㄤ簬鏋勫緩鍘諱腑蹇冨寲閲戣瀺搴旂敤錛屾彁渚涜稿傚熻捶銆佽嶇敓鍝佷氦鏄撱侀勬祴甯傚満絳夋湇鍔°
鎬葷殑鏉ヨ達紝浠ュお鍧婂湪寰堝氶嗗煙閮芥湁騫挎硾鐨勫簲鐢錛屽寘鎷浣嗕笉闄愪簬娓告垙銆佽壓鏈銆侀噾鋙嶆湇鍔$瓑絳夈
Ⅱ 什麼是Rollup
我們先來打個比方。
想像一下,我們回到了初中數學課堂上。「殘忍」 的初中數學老師給我們每人發了一張卷子,上面列了 100 道數字很大的除法題。我們的任務是解出盡可能多的題。但是,這裡面有個陷阱:我們只能將最終的解和每個計算步驟寫在一張答題紙上。幾分鍾後,我們有了一種不祥之感,越想越覺得這個任務荒謬至極。算完幾道題之後,這張答題紙就已經滿滿當當了。
這個噩夢般的故事與 Rollup 有什麼關系?
在這個故事裡,答題紙就是以太坊區塊,算術題就是智能合約交易。以太坊目前非常擁堵。每個區塊內要包含的交易太多了。更糟糕的是,絕大多數交易都是計算密集型的,例如閃電貸和通過聚合器路由的交易。隨著 DeFi 興起,簡單轉賬和支付已經成了過去時。
這就是問題的關鍵所在。就像數學老師要求我們將每個計算步驟都寫在一張答題紙上那樣,以太坊也必須處理並記錄每個事務的每一筆計算。
直到 Rollup 出現。
Rollup 將計算轉移到鏈下,只將最少的事務數據存儲在鏈上。從這個基本意義上來講,Rollup 就是以太坊的草稿紙。Rollup 負責所有復雜的數據處理,讓每個以太坊區塊都能容納(疊卷)成倍多的智能合約事務。
這個比喻不僅直觀呈現了 Rollup 旨在解決的問題(「因計算過載而導致的網路擁堵」),還讓我們大概了解了 Rollup 解決方案需要做到什麼(「將計算轉移到鏈下」)。但是,Rollup 的實際運作方式、呈現形式以及魅力所在都是我們需要深入研究的。
Ⅲ 如何創建和簽署以太坊交易
交易
區塊鏈交易的行為遵循不同的規則集
由於公共區塊鏈分布式和無需許可的性質,任何人都可以簽署交易並將其廣播到網路。
根據區塊鏈的不同,交易者將被收取一定的交易費用,交易費用取決於用戶的需求而不是交易中資產的價值。
區塊鏈交易無需任何中央機構的驗證。僅需使用與其區塊鏈相對應的數字簽名演算法(DSA)使用私鑰對其進行簽名。
一旦一筆交易被簽名,廣播到網路中並被挖掘到網路中成功的區塊中,就無法恢復交易。
以太坊交易的數據結構:交易0.1個ETH
{
'nonce':'0x00', // 十進制:0
'gasLimit': '0x5208', //十進制: 21000
'gasPrice': '0x3b9aca00', //十進制1,000,000,000
'to': '' ,//發送地址
'value': '0x16345785d8a0000',//100000000000000000 ,10^17
'data': '0x', // 空數據的十進製表示
'chainId': 1 // 區塊鏈網路ID
}這些數據與交易內容無關,與交易的執行方式有關,這是由於在以太坊中發送交易中,您必須定義一些其他參數來告訴礦工如何處理您的交易。交易數據結構有2個屬性設計"gas": "gasPrice","gasLimit"。
"gasPrice": 單位為Gwei, 為 1/1000個eth,表示交易費用
"gasLimit": 交易允許使用的最大gas費用。
這2個值通常由錢包提供商自動填寫。
除此之外還需要指定在哪個以太坊網路上執行交易(chainId): 1表示以太坊主網。
在開發時,通常會在本地以及測試網路上進行測試,通過測試網路發放的測試ETH進行交易以避免經濟損失。在測試完成後再進入主網交易。
另外,如果需要提交一些其它數據,可以用"data"和"nonce"作為事務的一部分附加。
A nonce(僅使用1次的數字)是以太坊網路用於跟蹤交易的數值,有助於避免網路中的雙重支出以及重放攻擊。
- const ethers = require('ethers')
- const signer = new ethers.Wallet('錢包地址')
- signer.signTransaction({
- 'nonce':'0x00', // 十進制:0
- 'gasLimit': '0x5208', //十進制: 21000
- 'gasPrice': '0x3b9aca00', //十進制1,000,000,000
- 'to': '' ,//發送地址
- 'value': '0x16345785d8a0000',//100000000000000000 ,10^17
- 'data': '0x', // 空數據的十進製表示
- 'chainId': 1 // 區塊鏈網路ID
- })
- .then(console.log)
以太坊交易結構
以太坊交易簽名
以太坊交易會涉及ECDSA演算法,以Javascript代碼為例,使用流行的ethers.js來調用ECDSA演算法進行交易簽名。
可以使用在線使用程序Composer將已簽名的交易傳遞到以太坊網路。這種做法被稱為」離線簽名「。離線簽名對於諸如狀態通道之類的應用程序特別有用,這些通道是跟蹤兩個帳戶之間余額的智能合約,並且在提交已簽名的交易後就可以轉移資金。離線簽名也是去中心化交易所(DEXes)中的一種常見做法。
也可以使用在線錢包通過以太坊賬戶創建簽名驗證和廣播。
使用Portis,您可以簽署交易以與加油站網路(GSN)進行交互。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。