クリプトゾンビ

クリプトゾンビLesson 6 capture3 コントラクトへのアクセス

投稿日:

Lesson 6 capture3 コントラクトへのアクセス

Web3.jsがコントラクトにアクセスするため、必要となるもは コントラクトの アドレス と ABI 。

スマートコントラクトを書き終えたあと、それをコンパイルしてイーサリアムにデプロイする。

コントラクトアドレス

コントラクトをデプロイすると、有効なイーサリアム上の固定アドレスが与えられる。
デプロイ後にスマートコントラクトにアクセスするためにはこのアドレスをコピーしておくことが必要。

ABI

ABIとは、Application Binary Interfaceの略。
コンパイル時に生成されコントラクトのメソッドをJSON形式で表していて、関数コールをコントラクトが理解できるようフォーマットする方法を、Web3.jsに教える。
イーサリアムスマートコントラクトは、イーサリアムブロックチェーンにデプロイされたバイトコードです。契約にはいくつかの機能が含まれる可能性があります。ABIは、コントラクト内のどの関数を呼び出すかを指定し、関数が期待する形式でデータを返すことを保証するために必要です。
イーサリアムにデプロイするためにコントラクトをコンパイルする際、SolidityコンパイラはABIを提供してくれる。
コントラクトアドレスに加えてABIをコピーして保存しておかなくてはならない。

Web3.jsコントラクトのインスタンス化

// myContractをインスタンス化
var myContract = new web3js.eth.Contract(myABI, myContractAddress);

prev

ogp
クリプトゾンビLesson 6 capture2 Web3プロバイダ

Lesson 6 capture2 Web3プロバイダ Web3プロバイダ Web3プロバイダはどのノードに読み書きを処理させるかを働き掛けるかをコードに教える。 従来のウェブアプリでAPIコールをす ...

続きを見る

NEXT

ogp
クリプトゾンビLesson 6 capture4 コントラクトの関数呼び出し

Lesson 6 capture4 コントラクトの関数呼び出し Web3.jsは、コントラクト関数を呼び出すための2つのメソッドをもつ。 状態を変更しない(今の状態を呼び出したり、固定の値を呼び出す) ...

続きを見る

Web3.jsコントラクトのインスタンス化

// myContractをインスタンス化
var myContract = new web3js.eth.Contract(myABI, myContractAddress);
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>CryptoZombies front-end</title>
    <script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script language="javascript" type="text/javascript" src="web3.min.js"></script>
    <script language="javascript" type="text/javascript" src="cryptozombies_abi.js"></script>
  </head>
  <body>

    <script>
      var cryptoZombies;

      function startApp() {
        var cryptoZombiesAddress = "YOUR_CONTRACT_ADDRESS";
        cryptoZombies = new web3js.eth.Contract(cryptoZombiesABI, cryptoZombiesAddress);
      }

      function getZombieDetails(id) {
        return cryptoZombies.methods.zombies(id).call();
      }

      // 1. ここで`zombieToOwner`を定義する

      // 2. ここで`getZombiesByOwner`を定義する

      window.addEventListener('load', function() {

        // Checking if Web3 has been injected by the browser (Mist/MetaMask)
        if (typeof web3 !== 'undefined') {
          // Use Mist/MetaMask's provider
          web3js = new Web3(web3.currentProvider);
        } else {
          // Handle the case where the user doesn't have Metamask installed
          // Probably show them a message prompting them to install Metamask
        }

        // Now you can start your app & access web3 freely:
        startApp()

      })
    </script>
  </body>
</html>

ビットコインってなに?

2008年11月、metzdowd.comにナカモトサトシにより投稿された論文Bitcoin:A Peer-to-Peer Electronic Cash Systemで定義された仕様とをもとにビットコイン・コミュニティーで開発が続けられる製造と取引に暗号学を使った通貨のことです。

ビットコイン自体は、フリー・ソフトウエアで、ソフトウェア開発のプラットフォームGitHubに登録すれば、ソースやドキュメント閲覧が可能で、開発に参加も可能です。

ナカモトサトシは、2010年12月まで開発に携わっていましたが、その後姿を消しました。日本名ですが、国籍も含め匿名性が高く身元も不明です。

真偽のほどは、不明ですがSBI社長の北尾氏が、2018年3月期第2四半期 SBIホールディングス(株)決算説明会動画の1:29:20頃)でナカモトサトシと議論を交わしたと発言して話題になりました。

ビットコインの仕組み

ビットコインは、P2P型の公開型分散台帳技術(DLT)によって信頼性を担保され運用されるブロックチェーンで結合された暗号通貨(cryptocurrency)のことです。

ビットコインは、P2Pネットワーク上のサーバー上で同一取引情報を持ちコントロールすることで取引の妥当性のチェックが行われるため、銀行など、特定の管理者がいない非中央集権型の仮想通貨と呼ばれています。

ブロックチェーン


GitHub

ブロックチェーンの動き

マイニング

ビットコインは送信アドレス(Tx)に対するデジタル署名によって保護されており、一定時間(10分)ごとに、すべての取引記録を分散台帳に追加します。

その追加処理には、ネットワーク上の分散取引台帳データと、10分間に発生したすべての取引のデータの整合性を取りながら正確に記録することが必要です。

整合性を取る作業は、膨大な計算量が必要となるため専用のハードウエアの計算能力を使って、誰でもが取引を処理することができます。

この手伝いをしてくれた人(膨大な計算処理を行った人)の中で、結果として追記処理を成功させた人には、その見返りとしてビットコインが支払われます。

この作業をマイニングと呼びます。

マイニングには、ソロマイニングとプールマイニングがあり、個人のPCでも余った演算能力でプールマイニングに参加できます。

ブロックチェーンをより深く理解する

全画面にして字幕設定を自動翻訳 イタリア語=>自動翻訳を経由して日本語に設定するとよくわかります。

上記デモは、下記リンク先サイトを使用しているので、自分でも試すことができます。

 

ジェネシス・マイニングでのハッシュパワー購入

ジェネシス・マイニングは世界最大の高く信頼されたビットコイン クラウド マイニングのプロバイダーです。ハッシュパワー購入時に,コード(kjx2uz)を使用した人は、購入時に3%の割引になります。

ブロックチェーンエクスプローラー

ブロックチェーンアドレスを入力することで、送金状況(confirmation回数の確認)が行えます。

イーサリウムの仕組み

-クリプトゾンビ

Copyright© 仮想通貨アンテナ , 2021 All Rights Reserved.