1. 程式人生 > >js4eos支援EOS智慧合約編譯和部署了,再也不用編譯EOS了

js4eos支援EOS智慧合約編譯和部署了,再也不用編譯EOS了

  EOS最近DAPP不斷增多,活躍度也不錯,但是EOS一直有一個心病,那就是操作門檻高,這也是EOS參與者賬號少的核心原因。EOS門檻高主要體現在三個方面。

    1)新賬號建立機制異常複雜

    必須有一個已經存在的賬號才能建立新賬號,且消耗EOS。這個類似邀請碼機制,進入EOS,必須要有“推薦人”,且自己得掏錢。這個問題是機制上的,比較難解決。但還是有一些嘗試的,比如BM曾倡議降低賬號資料RAM消耗量,比如最近meetone和WhaleEx聯合弄免費賬號活動,儘管需要實名繫結且三天活躍才會免費,但是對於那些對隱私不是很在意的新使用者還是利好的,是一個雙贏,對EOS生態也是利好。

   2)RAM, CPU機制太繁瑣

    CPU價格經常波動,CPU大漲就可能導致使用者賬號因為CPU不足而處於“凍結”狀態,就算使用者賬號有再多的EOS,也解凍不了,必須等其他人施救,體驗極差。這個我在4個月前就做了一個CPU互助平臺eosfavor.com做CPU免費抵押,後來由於CPU太貴,沒法持續下去,目前只支援部分使用者免費啟用。

    3)EOS使用開發環境不友好

    目前個人及開發人員都是通過cleos這個客戶端程式和EOS互動,這裡就存在一個問題,要得到cleos就必須編譯EOS。而EOS編譯一向都不是一個簡單的事情,一是不同機器系統可能會出現各種問題,二是機器要求較高。同時,EOS各種升級還可能導致編譯錯誤,比如EOS1.2出現過“symbole_core.hpp”找不到的問題。

    js4eos的初衷就是降低使用者EOS使用門檻。js4eos第一版解決了EOS個人使用者的問題,即提供了和cleos一模一樣的命令,只需一條安裝js4eos命令即可擁有cleos的所有功能,無需編譯EOS。但是智慧合約開發人員需要使用eosiocpp等工具,還是需要編譯EOS,因此這次js4eos升級了,支援編譯部署智慧合約,開發人員也不需要編譯EOS了。

  • js4eos升級功能            

        1)支援EOS智慧合約編譯部署

        2)使用者賬號私鑰加密保護,使用者的私鑰加密後才儲存到檔案裡的,不暴露明文。使用前必須通過unlock解鎖。

        3)支援一鍵切換網路,在主網,測試網路jungle, 麒麟網路,fibos等網路中自由切換。

js4eos config set  -n mainnet/jungle/kylin/fibos

        4)支援水龍頭功能,比如新建測試網路賬號,通過下面命令即可一鍵建立

  • js4eos進行智慧合約開發實踐

 js4eos安裝

     js4eos安裝只需要幾秒鐘

npm install -g js4eos

//建立預設錢包,需要記住它輸出的錢包密碼,後面unlock時需要輸入

js4eos wallet create

匯入私鑰

    這裡匯入的私鑰,js4eos會加密儲存到檔案裡

//解鎖錢包,需要輸入前面的錢包密碼

js4eos wallet unlock

js4eos wallet import your_private_key

  • 智慧合約編寫,編譯及部署      

mkdir hello 

cd hello

在hello目錄下新建hello.cpp檔案,通過vim等編輯器輸入如下合約程式碼

然後編譯

js4eos compile -o hello.wasm hello.cpp

js4eos compile -g hello.abi hello.cpp

切換到測試網路部署

cd ../

js4eos config set -n jungle

js4eos  set contract youraccount hello    

測試

js4eos push action youraccount hi '["youraccount"]' -p youraccount

切回主網部署正式上線

js4eos config set -n mainnet

js4eos  set contract youraccount hello

中間執行過程中如果有以下提示,說明你沒有匯入私鑰或者unlock

Error: missing key, check your keyProvider

  • hello原始碼實踐

  • js4eos原始碼及詳細文件

喜歡就點選關注吧

公眾號:區塊鏈斜槓青年

歡迎大家加我微信:itleaks