2017-06-22 6 views
0

私はEthereumで新しいです。 私はAzureのクラスタを使って契約を開発しようとしています(私は試用アカウントを持っています)。 私はアズールでマシンから自分のネットワークにGETHを使用して接続: - OKEtheriumのさまざまなコンソールからの変数の可視性

[email protected]:~$ geth attach http://ether2ore.eastus.cloudapp.azure.com:8545 

それから私は、それはだ変数

>var test_var = 555 
undefined 
>test_var 
555 

を初期化します。

しかし、私は私のラップトップから同じポイントに接続しようとしたとき:

C:\Users\boris>geth attach http://ether2ore.eastus.cloudapp.azure.com:8545 

私は、この変数をチェックしてみました:

> test_var 
ReferenceError: 'test_var' is not defined 
at <anonymous>:1:1 

私はそれが定義されていないことがわかります。

- C:私は同じアカウントを参照してください両方のコンソールで

\ Users \ユーザーボリス>

eth.accounts [ "0xab14c61930343149c2f54044054cd46b90c0dee6"、 "0x7cc276b28bfdbb57151ed3b5552aafb2f2592964"、 "0xc9b8b9d57219b2c0935d8c28d4d2247fe70232f3"、 " 0x2aed463fd54aa41fed898a9629bee6f0935b74fb "]

から - gethadmin @ XXXXXX-TX0

eth.accounts [ "0xab14c61930343149c2f54044054cd46b90c0dee6"、 "0x7cc276b28bfdbb57151ed3b5552aafb2f2592964"、 "0xc9b8b9d57219b2c0935d8c28d4d2247fe70232f3"、 "0x2aed463fd54aa41fed898a9629bee6f0935b74fb"]

コマンド両方のコンソール上のだから私 同じ結果が得られますadmin.peers、それは同じネットワークです。

私はそれがどのように動作すべきか分かりませんが、同じネットワーク内で変数を定義すると、すべてのコンソールから見ることができるはずです。そうではありませんか? 契約と同じ状況。私は最初のコンソールで契約をまとめ、それを操作することができますが、別のコンソールからは到達できません。

なぜこのような状況が発生するのか説明したり、この質問に対する回答を得るための適切なリンクを教えてください。 多くの感謝

答えて

0

インスタンス化する変数は、コンソール内のローカル変数です。 接続するたびに、web3 APIが公開された新しいJavaScript Consoleがローカルに作成され、ethereum関数呼び出しをラップして、生の呼び出しを記述するのではなくJS内で使用できるようにします。

ネットワーク上でデータを保持するには、storageという契約を展開する必要があります。 getStorageAtまたはcallとパブリック変数の署名を使用して、トランザクションを実行せずに契約ストレージからデータを取得できます。ただし、契約に格納されたデータを更新するために、(上記の堅実ドキュメントの例と同様に)契約関数を呼び出してトランザクションを実行する必要があります。

関連する問題