以太坊開發(fā)學(xué)習(xí)筆記 - truffle migrate

使用Geth部署的私有網(wǎng)絡(luò)痪寻。
然后在使用truffle migrate部署智能合約的時候娄昆,出現(xiàn)了如下錯誤:

Running migration: 1_initial_migration.js
  Deploying Migrations...
  ... undefined
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: exceeds block gas limit
...

有可能是兩個問題引起的:

  • 可能給了transaction太高的gaslimit浸船,尤其是高于block gas limit昭齐。所以要么降低transaction的gaslimit要么提高block gas limit瞎惫。

降低truffle的transaction gaslimit:
在truffle.js配置項中添加了from和gas的參數(shù):

from: "address-account",
gas: 4612388

提高block的gaslimit:
在geth啟動時添加--targetgaslimit '9000000000000'的配置項盐股。

其中驮审,針對合約和交易的gas限制鲫寄,有一個說明:

  • 交易的大小限制并不是一個固定數(shù),截至到16.2.7號限制大概是 780KB(大約300w gas)
  • 交易和區(qū)塊的大小都沒有固定的限制疯淫,它可以自動伸縮地来,但是這并不是意味著完全沒有限制,當(dāng)前單個區(qū)塊最多的gas使用量為3,141,592 gas熙掺,理論上來講未斑,你可以創(chuàng)建一個可以消耗單個區(qū)塊所有g(shù)as的,很大的單筆交易

genache-cli

之前一直用genache的客戶端币绩,完美兼容蜡秽。用到原生的geth,就多少會有點問題缆镣。后來發(fā)現(xiàn)還有個genache-cli終端程序芽突。下來試一下。
其和Ganache一樣董瞻,都是Truffle框架中的一個開發(fā)工具寞蚌,其實就是Ganache的一個命令行版本田巴。其使用ethereumjs來模擬了所有ethereum應(yīng)用的行為。同時也包含了RPC功能挟秤,可以用來部署自己的私有網(wǎng)絡(luò)壹哺。

安裝

使用npm安裝:
npm install -g ganache-cli

使用方法

命令格式:
$ ganache-cli <options>

官方給的各個配置參數(shù)說明(稍后翻譯,先放原文):

-a or --accounts: Specify the number of accounts to generate at startup.
-e or --defaultBalanceEther: Amount of ether to assign each test account. Default is 100.
-b or --blockTime: Specify blockTime in seconds for automatic mining. Default is 0 and no auto-mining.
-d or --deterministic: Generate deterministic addresses based on a pre-defined mnemonic.
-n or --secure: Lock available accounts by default (good for third party transaction signing)
-m or --mnemonic: Use a specific HD wallet mnemonic to generate initial addresses.
-p or --port: Port number to listen on. Defaults to 8545.
-h or --hostname: Hostname to listen on. Defaults to Node's server.listen() default.
-s or --seed: Use arbitrary data to generate the HD wallet mnemonic to be used.
-g or --gasPrice: Use a custom Gas Price (defaults to 20000000000)
-l or --gasLimit: Use a custom Gas Limit (defaults to 90000)
-f or --fork: Fork from another currently running Ethereum client at a given block. Input should be the HTTP location and port of the other client, e.g. http://localhost:8545. You can optionally specify the block to fork from using an @ sign: http://localhost:8545@1599200.
-i or --networkId: Specify the network id the ganache-cli will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)
--db: Specify a path to a directory to save the chain database. If a database already exists, ganache-cli will initialize that chain instead of creating a new one.
--debug: Output VM opcodes for debugging
--mem: Output ganache-cli memory usage statistics. This replaces normal output.
--noVMErrorsOnRPCResponse: Do not transmit transaction failures as RPC errors. Enable this flag for error reporting behaviour which is compatible with other clients such as geth and Parity.
作為node_module

其直接可以作為nodejs的組件艘刚,直接提供web3js的provider管宵,然后與eth網(wǎng)絡(luò)進行交互。
作為Web3的provider:

var ganache = require("ganache-cli");
web3.setProvider(ganache.provider());

作為一個http server(提供服務(wù)):

var ganache = require("ganache-cli");
var server = ganache.server();
server.listen(port, function(err, blockchain) {...});

參考鏈接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末攀甚,一起剝皮案震驚了整個濱河市啄糙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌云稚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沈堡,死亡現(xiàn)場離奇詭異静陈,居然都是意外死亡,警方通過查閱死者的電腦和手機诞丽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門鲸拥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人僧免,你說我怎么就攤上這事刑赶。” “怎么了懂衩?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵撞叨,是天一觀的道長。 經(jīng)常有香客問我浊洞,道長牵敷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任法希,我火速辦了婚禮枷餐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苫亦。我一直安慰自己毛肋,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布屋剑。 她就那樣靜靜地躺著润匙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唉匾。 梳的紋絲不亂的頭發(fā)上趁桃,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼卫病。 笑死油啤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蟀苛。 我是一名探鬼主播益咬,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帜平!你這毒婦竟也來了幽告?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裆甩,失蹤者是張志新(化名)和其女友劉穎冗锁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗤栓,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡冻河,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茉帅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叨叙。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖堪澎,靈堂內(nèi)的尸體忽然破棺而出擂错,到底是詐尸還是另有隱情,我是刑警寧澤樱蛤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布钮呀,位于F島的核電站,受9級特大地震影響昨凡,放射性物質(zhì)發(fā)生泄漏行楞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一土匀、第九天 我趴在偏房一處隱蔽的房頂上張望子房。 院中可真熱鬧,春花似錦就轧、人聲如沸证杭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽解愤。三九已至,卻和暖如春乎莉,著一層夾襖步出監(jiān)牢的瞬間送讲,已是汗流浹背奸笤。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哼鬓,地道東北人监右。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像异希,于是被迫代替她去往敵國和親健盒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容