AragonOSをGanacheとともに使ってみる 失敗編

AragonOSのチュートリアルをやってみたの続きです。先のチュートリアルでは、起動時にローカルチェーンを立ち上げてくれていたので、スマートコントラクトのデバッグなどを考えて、Ganacheを別途起動した上で、実行してみようかと思います。ただこの投稿では、うまくいっていないです。

AragonOSを起動するのに

~/git/aragonosplayground$ npm run start:aragon:http

とすると裏でganache-cliを起動して、そのチェーンに対してAragonPMなどのフレームワークをインストールして、アプリをデプロイしてくれるようです。一方で、あらかじめローカルの同じポートでGanacheを起動しておけば、そちらのチェーンに対して作業してくれるようです。

ただ、初回作業した際にはエラーとなってしまいました。

↓ Start a local Ethereum network [skipped]
    → Connected to the provided Ethereum network
  ✔ Check IPFS
  ❯ Publish app to APM
    ✔ Applying version bump (major)
    ✔ Deploy contract
    ✔ Determine contract address for version
    ✔ Check for --http-served-from argument and copy manifest.json to destinatio
n
    ↓ Generate application artifact [skipped]
      → Using existent artifact
    ✖ Publish aragonosplaygraound.aragonpm.eth
      → Repository aragonosplaygraound.aragonpm.eth does not exist and its regis
…
      Fetch published repo
    Create DAO
    Open DAO
 ✖ Repository aragonosplaygraound.aragonpm.eth does not exist and its registry does not exist
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app-name@1.0.0 start:aragon:http: `npx aragon run --http localhost:8001 --http-served-from ./dist`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the app-name@1.0.0 start:aragon:http script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/hajime/.npm/_logs/2019-11-22T01_25_47_754Z-debug.log

✖ Repository aragonosplaygraound.aragonpm.eth does not exist and its registry does not existと出力されていて、

Ganache側のログには以下が出力されていて、何かの処理が行われているようです。

[10:49:29 AM] Starting server (version 2.1.0) with initial configuration: {"gasLimit":6721975,"gasPrice":20000000000,"hardfork":"petersburg","hostname":"127.0.0.1","port":8545,"network_id":5777,"default_balance_ether":100,"total_accounts":10,"unlocked_accounts":[],"locked":false,"vmErrorsOnRPCResponse":true,"verbose":false}
[10:49:29 AM] Ganache started successfully!
[10:49:29 AM] Waiting for requests...
[10:49:29 AM] eth_subscribe
[10:49:29 AM] eth_getLogs
[10:49:29 AM] eth_subscribe
[10:49:35 AM] net_listening
[10:49:35 AM] eth_call
[10:49:35 AM] eth_call
[11:03:38 AM] eth_accounts
[11:03:39 AM] eth_call
[11:03:39 AM] eth_call
[11:03:41 AM] eth_accounts
[11:03:41 AM] eth_estimateGas
[11:03:41 AM] eth_getBlockByNumber
[11:03:41 AM] eth_sendTransaction
[11:03:41 AM]   Transaction: 0x0efa881c8bf0d8c46bce9a7158aefec14d340768565cc3ac1346d21972099db9
[11:03:41 AM]   Contract created: 0x7dc7aa23873a272b71af7336f37293da17ed755d
[11:03:41 AM]   Gas usage: 1369900
[11:03:41 AM]   Block Number: 1
[11:03:41 AM]   Block Time: Fri Nov 22 2019 11:03:41 GMT+0900 (JST)
[11:03:41 AM] eth_getTransactionReceipt
[11:03:41 AM] eth_getBlockByNumber
[11:03:41 AM] eth_getCode
[11:03:41 AM] eth_accounts
[11:03:41 AM] eth_call

エラーをドリルダウンするために、レポジトリのPublishのみを行ってみます。

$ npx aragon apm publish major
  ❯ Check IPFS
    ✔ Start IPFS
    ⠹ Add local files
    Applying version bump (major)
    Determine contract address for version
    Building frontend
    Prepare files for publishing
    Generate application artifact
   ` Publish aragonosplaygraound.aragonpm.eth
    Fetch published repo`
(node:29730) UnhandledPromiseRejectionWarning: Error: [ethjs-rpc] rpc error with payload {"id":5261604853188,"jsonrpc":"2.0","params":[{"to":"0x","data":"0x3b3b57deaaa49dd32630cf88507f696077d7dbc5abff347e796d12843b2e81cdd3bdf1f7"},"latest"],"method":"eth_call"} null

ステップの詳細レベルはあがりましたが、あまり役に立ちそうな情報がありません。仕方ないのでレポジトリのPublishについてガイドを読んでみたら以下のような記述がありました。

Note
The default environment which points to localhost does not have an ENS Registry address specified
because aragonCLI will default the value to 0xB9462EF3441346dBc6E49236Edbb0dF207db09B7 
(the ENS Registry pre-deployed on the local development chain).

aragonが参照しているtruffle-config.jsを見ても、ENSの設定が無いです。

   development: {
      host: 'localhost',
      network_id: '*',
      port: 8545,
      gas: 6.9e6,
      gas

これが原因かはまだわかりませんが、明示的に設定等をしないといけなさそう。TruffleSuiteのドキュメントにENSの設定の仕方の記述がありました。

Blockchain側のデバッグをしやすいように、と思って安易にGanacheにつなげようとしたのですが、ちょと落とし穴がありました。次はENSをなんとかしようと思います。レポジトリのPublishについてガイドレポジトリのPublishについてガイド

コメント

タイトルとURLをコピーしました