zkSync 空投交互教學
本篇文章以圖文的方式來說明如何進行跨橋 (Bridge) ,以及和應用如何交互。上一篇文章 zkSync 空投策略了解策略後,我們可以開始進行交互。如果進行一次交互的策略,準備 0.02207 ETH,想要進行持續多次交易的策略,準備 0.05631 ETH。 zkSync 1.0 (Lite)Bridge 入金Lite 不需要加入 Network 到 Metamask,相關的操作都在以太坊主網路進行,進入 Bridge 頁面,點擊左邊 Ethereum Wallet 點擊 Top up 充值 選擇最左下角的官方 Bridge “zkSync” 這邊輸入 0.00518 ETH,右上角的手續費可以等 $5 (0.0024 ETH) 以下比較好,送出後大概要等幾分鐘。 Mint NFT完成後上面點擊 NFT 頁籤,點擊 Mint NFT 第一次使用帳號要進行啟用,點擊按鈕啟用 還要再進行一次簽章 可以自己上傳檔案到 IPFS 取得 Content Address,或者只是要互動的話,可以利用 STORJ 來生成,拖曳檔案或點擊 click to browse 來上傳圖片 他會產生一個 H ...
zkSync 空投策略
前陣子 Arbitrum 已經空投,聽說有人嚕到退休了。zkSync 是下一個熱門空投的機會,這邊研究並整理一份資料給大家參考。下一篇文章 zkSync 空投交互教學則提供一份交互的圖文教學。 空投規則在開始 zkSync 交互前,我們先參考一下最近同為 Layer 2 的 Arbitrum 和之前 Optimism 空投的規則作為參考依據。 Optimism參考 Optimism 空投規則 整理如下: 早期用戶,在 2021 年 6 月 23 日之前有使用 Bridge 或使用超過一天 ( 需間隔 24 小時 ),且使用過應用。 活躍用戶,四個星期以上與應用進行至少 1 次交易。( 星期照間隔計算 ) 投票者,至少一項鏈上或至少兩項鏈下提案進行了投票或撰寫。( 使用過 Governor Alpha and Bravo, Aave, Curve, Maker, Aragon, DAOHaus, DAOStack 和 Snapshot 等 ) 多簽使用者,至少執行了 10 筆交易。( 使用過 Gnosis Safe v0.1.0-1.3.0, MultiSigWithDailyLimi ...
Solidity 智能合約 Gas 優化技巧 - 變數順序
說明你也許不知道,Solidity 宣告變數的順序也會影響 gas 的消耗。由於 EVM 的操作都是以 32 bytes 為單位進行,所以編譯器會嘗試在讀寫變數時,將小於 32 bytes 的變數打包成 32 bytes 一組來進行存取,以達到節省存取次數的目的。不過編譯器並沒有足夠聰明,能自動將合約的變數做最佳化的分組。他會將固定大小的變數,依序每 32 bytes 為一組。例如下面的例子: 12345678910111213contract MyContract { uint64 public a; uint64 public b; uint64 public c; uint64 public d; function test() { a = 1; b = 2; c = 3; d = 4; }} 在執行 test() 時,雖然看起來寫入了四個變數,但是由於這四個變數加起來剛好是 32 bytes ,可以做一次性的寫入,所以實際上執行一個 SSTORE ,消耗 20000 gas 。接著看下面的例子: 123 ...
Solidity 智能合約 Gas 優化技巧 - 資料壓縮
在開發智能合約的過程,由於想要能夠達到多筆撮合的功能,我們實作了一個函式能夠輸入多筆訂單資料。在隨著我們加入了越來越多的功能,同時為了確保合約公正性,而需要越來越的參數,例如:礦工手續費、taker 手續費、maker 手續費和支付手續費方式等,我們遇到了變數過多而無法編譯的情況,而大量的資料所消耗的 gas 也成為一個問題。 我們在撮合的函式中,最後每個訂單會有這些資料: 1234567891011121314uint256 amountSell,uint256 amountBuy,address tokenSell,address tokenBuy,address user,uint256 nonce,uint256 gasFee,uint256 takerFee,uint256 makerFee,uint256 joyPrice,bool isBuy,uint8 v,byte32 r,byte32 s 於是我們試著想辦法減少變數的數量,在某次我看著 Etherscan 某交易顯示如下的參數資料時 12345678910111213Function: trade(address t ...
Solidity 智能合約 Gas 優化技巧 - 函式名稱
說明你也許不會想到,函式名稱也會對 gas 消耗造成影響,事實上,在最糟的情況下,甚至會有上千 gas 的差距。我們來看看下面程式: 1234contract Test { function b() public { }} 上面程式執行 b() 會消耗 125 gas,接著改成下面: 1234567contract Test { function a() public { } function b() public { }} 這次執行 b() 變成消耗 147 gas,一樣的空函式怎麼消耗增加了呢?試著執行 a() 會發現只消耗 125 gas。原來在智能合約中,函式存在前後順序,排序越後面的會消耗越多,每差一個順位就會多 22 gas。此時你可能會想把它改成下面: 1234567contract Test { function b() public { } function a() public { }} ...
Solidity 智能合約 Gas 優化技巧
如果一間區塊鏈公司業務,成本都來自於智能合約的交易,那麼智能合約的 gas 消耗,就直接影響公司營業成本。寫出節能的智能合約,在商用上有其重要性。這篇文章將整理分析智能合約中,影響 gas 消耗的一些因素,有助於我們了解消耗最大的指令是哪些,並謹慎的使用。gas 消耗可參考下面兩個表: 表一 表二 表一中的 Gas Used 為消耗的 gas。如果顯示為 FORMULA,表示不是一個固定值,要參考右邊的說明。由於我們通常使用 Solidity 開發,所以可能無法直接對應到上面表一中的指令;這時可參考表二,他有多加上一些額外的指令。以下列出消耗較多 gas 的行為與指令: 建立合約對應到 CREATE 和 CODECOPY 兩個指令。在合約中建立另一個空的合約消耗 42901 gas ( 總共 64173 gas),如果是直接部署一個空合約則總共是 68653 gas。加上合約的功能實作,可能會有幾十萬甚至百萬的 gas,應該是所有指令中消耗最多一個。拆分多個類別與實例的實作方式,gas 消耗可能會很可觀。避免用 Contract 當作資料結構: 不好 123456789contra ...
免費獲得比特幣
提供一些免費獲得比特幣的網站,每個網站獲得的條件和時間限制都不太一樣 The Free bitcoins.com 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 Virtual Faucet 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 SrBitcoin.com 每半小時領取 領取方式:回答問題 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 BTC4You 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 RawBitcoins.com 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 C ...
比特幣礦池 - GHash.IO / CEX.IO
(GHash.IO 已關閉,CEX.IO 仍可使用) 推薦一個不錯的比特幣礦池:GHash.IO 他結合了交易平台:CEX.IO 需要從 CEX.IO 註冊才能使用。 礦池有許多不錯的特色: 0% 手續費。 NMC、IXC 和 DVC 合併挖礦,可以增加額外的收益。 通知功能,挖礦速度異常可寄 Email 或電話通知。 是目前速度最快的礦池,還蠻穩定。 支援 stratum。 可自訂 difficulty。… GHash.IO 和 CEX.IO 是帳戶系統互通,所以在 GHash.IO 挖的礦可以直接在 CEX.IO 交易,而且目前沒有任何交易手續費,不過目前沒有 USD 之類真實貨幣的交易。 CEX.IO 另外提供了一個特別的貨幣 GHS,簡單說就是 CEX.IO 提供了雲端挖礦的服務,他將雲端挖礦的運算力放在交易市場讓使用者自行交易,由市場決定算力的價值。 1GHS 就相當於 1 GH/s 的挖礦速度,一但購買了 GHS 就會自己開始挖礦,可以在 GHash.IO 的 Workers 看到挖礦情況。他會出現一個叫做 ghash 的 Worker, 如下圖: 購買雲端挖 ...