今天就跟大家聊聊有關(guān)如何解析truffle.js配置文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、洪山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為洪山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
truffle.js是以太坊開(kāi)發(fā)框架truffle的配置文件,下面介紹truffle.js 配置文件的位置、windows下的命名沖突解決方案以及各種配置選項(xiàng)。
truffle項(xiàng)目的配置文件位于項(xiàng)目的根目錄下,名稱為truffle.js。這個(gè)文件是一個(gè)Javascript腳本,可以在其中執(zhí)行任意 必要的代碼來(lái)創(chuàng)建適合你的配置。truffle.js必須導(dǎo)出一個(gè)表征你的項(xiàng)目配置的對(duì)象,例如:
module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" // 可匹配任意網(wǎng)絡(luò) } } };
在這個(gè)創(chuàng)建truffle項(xiàng)目時(shí)生成的默認(rèn)配置文件中,聲明了一個(gè)名為development
的以太坊節(jié)點(diǎn),該節(jié)點(diǎn)在地址127.0.0.1:8545
監(jiān)聽(tīng)。
在Windows命令行使用truffle時(shí),默認(rèn)的配置文件名與truffle沖突 —— 當(dāng)你在命令行輸入truffle時(shí),windows實(shí)際上會(huì)調(diào)用項(xiàng)目目錄下 的配置腳本truffle.js。
可以有幾種方法解決這一沖突:
輸入truffle.cmd全稱,例如:
D:\ez-dapp> truffle.cmd compile
修改PATHEXT環(huán)境變量,將.js
后綴從可執(zhí)行后綴中刪除。
將truffle.js更名為truffle-config.js
。
使用不會(huì)產(chǎn)生沖突的Windows的power Shell或Git BASH。
指定在部署合約、發(fā)送交易時(shí)使用哪個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。當(dāng)在某個(gè)特定的網(wǎng)絡(luò)節(jié)點(diǎn)上編譯或部署合約時(shí),合約會(huì)緩存起來(lái)方便后續(xù)使用。 當(dāng)truffle的合約抽象層檢查到你連到某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),它會(huì)使用這個(gè)這個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上原有的緩存合約來(lái)簡(jiǎn)化部署流程。
下述的networks對(duì)象,通過(guò)一個(gè)網(wǎng)絡(luò)名做為配置的鍵,值對(duì)應(yīng)定義了其網(wǎng)絡(luò)參數(shù)。networks的對(duì)應(yīng)選項(xiàng)不是必須的,但如果一旦指定, 每個(gè)網(wǎng)絡(luò)必須定義一個(gè)對(duì)應(yīng)的network_id。如果希望聲明一個(gè)默認(rèn)網(wǎng)絡(luò),可以通過(guò)將netword_id的值標(biāo)記為default來(lái)實(shí)現(xiàn), 當(dāng)沒(méi)有匹配到其它的網(wǎng)絡(luò)時(shí),就會(huì)使用默認(rèn)網(wǎng)絡(luò)。需要注意的是整個(gè)配置中,應(yīng)該有且僅有一個(gè)default的網(wǎng)絡(luò)。一般來(lái)說(shuō), 默認(rèn)網(wǎng)絡(luò)主要用于開(kāi)發(fā),配置,合約等數(shù)據(jù)沒(méi)有長(zhǎng)期保存的需要,網(wǎng)絡(luò)ID也會(huì)因TestRPC的重啟而頻繁改變時(shí)。
網(wǎng)絡(luò)節(jié)點(diǎn)名稱在通過(guò)用戶接口調(diào)用時(shí)使用。例如,在部署合約時(shí)使用--network
選項(xiàng)指定要使用的網(wǎng)絡(luò)節(jié)點(diǎn):
$ truffle migrate --network live
live
是truffle.js中定義的某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn):
networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" // match any network }, live: { host: "178.25.19.88", // Random IP for example purposes (do not use) port: 80, network_id: 1, // Ethereum public network // optional config values: // gas // gasPrice // from - default address to use for any transaction Truffle makes during migrations // provider - web3 provider instance Truffle should use to talk to the Ethereum network. // - function that returns a web3 provider instance (see below.) // - if specified, host and port are ignored. } }
對(duì)于每一個(gè)配置的網(wǎng)絡(luò)節(jié)點(diǎn),在未明確設(shè)置以下交易參數(shù)時(shí),使用其默認(rèn)值:
gas:部署合約的油耗上限,默認(rèn)值:4712388
gasPrice:部署合約時(shí)的油價(jià),默認(rèn)值:100000000000 wei,即100 shannon
from:執(zhí)行遷移腳本時(shí)使用的賬戶,默認(rèn)使用節(jié)點(diǎn)旳第一個(gè)賬戶
provider:默認(rèn)的provider使用host和port選項(xiàng)構(gòu)造:new Web3.providers.HttpProvider("http://host:port")
對(duì)于配置的每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),你可以設(shè)置provider或host/port,但不能同時(shí)使用。如果你需要一個(gè) HTTP provider,推薦使用host/port選項(xiàng),如果需要一個(gè)定制的provider,例如HDWalletProvider, 那么必須使用provider選項(xiàng)。
合約編譯的默認(rèn)輸出目錄是項(xiàng)目根目錄下的./build/contracts,不過(guò)這一點(diǎn)可以在配置文件中 使用contracts_build_directory配置項(xiàng)進(jìn)行修改。
例如,你可以將合約編譯結(jié)果存放在項(xiàng)目根目錄的./output/contracts目錄下:
module.exports = { contracts_build_directory: "./output", networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*", } } };
編譯生成的合約構(gòu)件也可以不放在項(xiàng)目目錄下,例如:
module.exports = { contracts_build_directory: "../../../output", networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*", } } };
當(dāng)然你也可以使用絕對(duì)路徑,不過(guò)我們不推薦這么做,因?yàn)槿绻谄渌麢C(jī)器上 構(gòu)建你的項(xiàng)目,可能會(huì)找不到你設(shè)定的絕對(duì)路徑。如果在windows下使用絕對(duì) 路徑,記得轉(zhuǎn)義反斜杠,例如: C:\\Users\\Username\\output
。
使用mocha選項(xiàng)傳入MochaJS測(cè)試框架需要的配置選項(xiàng),例如:
mocha: { useColors: true }
使用solc選項(xiàng)傳入solity編譯器需要的選項(xiàng),例如:
solc: { optimizer: { enabled: true, runs: 200 } }
看完上述內(nèi)容,你們對(duì)如何解析truffle.js配置文件有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
標(biāo)題名稱:如何解析truffle.js配置文件
轉(zhuǎn)載來(lái)源:http://bm7419.com/article4/jcscie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、靜態(tài)網(wǎng)站、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣、軟件開(kāi)發(fā)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)