playground

The world is a playground.

Blockchain

主な Ethereum ネットワークの Network ID および Chain ID 一覧

Ethereum は Mainnet (本番環境) と、いくつかある Testnet (テスト環境) で使用している ID が異なります。 それぞれの環境に固有の Network ID と Chain ID の組み合わせによって、接続する P2P ノードや、トランザクションへの署名結果が変わります。 な…

Ethereum のトランザクションハッシュからトランザクション詳細を取得

Install Web3 (version 1.0) $ npm install web3 サンプルコード const Web3 = require('web3'); console.log(Web3.version); // => 1.0.0-beta.34 var web3 = new Web3('wss://mainnet.infura.io/ws'); const transactionHash = '0x6d365aa4dda50738ae9b63d…

Ripple (XRP) のアドレスを作成

ripple-lib をインストール $ npm install ripple-lib サンプルコード オフラインでも動作します。 const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI(); const address = api.generateAddress(); console.log('address', addr…

Ripple (XRP) の残高を取得 (JavaScript)

Ripple (XRP) の残高を取得する方法のメモです。 Ripple 公式のライブラリを使用します。 Ripple 公式ライブラリ ripple-lib: https://github.com/ripple/ripple-lib ripple-lib のインストール 公式では、yarn を推奨しているけど、以下は npm でインストー…

Ruby で Ethereum の秘密鍵・アドレスを生成

require 'openssl' require 'base16' require 'digest/sha3' def eth_address(public_key) s = public_key[2, 128] s.downcase! s = Base16.decode16(s) h = Digest::SHA3.hexdigest(s, 256) a = '0x' + h[-40..-1] return a end ec = OpenSSL::PKey::EC.new…

Ethereum の function call データフォーマット

マルチシグウォレットを使用して他のスマートコントラクトのメソッドを実行したりするのに必要なので調べたよ Solidity で書かれたスマートコントラクトに次のようなメソッドがある場合で説明します 以下の countUp() とか countDown() を実行するためにはど…

OpenZeppelin の Crowdsale コントラクトのデプロイ手順

最新の OpenZeppelin (1.9.0) をみたら、これまでとかなり Crowdsale コントラクトのデプロイ手順が異なっていたのでメモ。 これまでは、Crowdsale Contract の中で Token Contract のインスタンスを生成していたが、どうやら Gas 消費量が大きすぎるらしく…

Linux (Ubuntu 16.04 LTS) に geth をインストール

Linux (Ubuntu 16.04 LTS) に geth をインストールするには、次のコマンドを実行します。 $ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ethereum/ethereum $ sudo apt-get update $ sudo apt-get install ethereum …

Truffle でコントラクトの ABI を取得

Truffle でビルド済みのコントラクトの ABI を取得する方法を紹介します。 一番簡単なのは、./build/contracts ディレクトリにビルド済みのコントラクト ABI や bytecode が記録されている JSON ファイルがあるので、そこから取得する方法です。 たとえば、E…

Ethereum の Block Gas Limit を取得

この記事では Ethereum のブロックごとの Gas Limit を取得する方法をいくつか紹介します。 ちなみに Privatenet, Ropsten 上での Smart Contract のデプロイ時に Exceeds block gas limit というエラーが出てかなり困っていたのですが、原因はネットワーク…

ローカル環境で Ethereum の秘密鍵生成・アドレス取得

開発用に Ethereum の秘密鍵とアドレスをいくつか生成したいときがあったので、そのときに使用した方法のメモです。 ethereumjs-wallet を使用すると、とても簡単に Ethereum の秘密鍵を生成したりアドレスを取得したりすることができます。 もちろんローカ…

Ethereum の秘密鍵から公開鍵を取得 (JavaScript)

今回使用するライブラリ ethereumjs-util ethereumjs-wallet ライブラリのインストール $ npm install ethereumjs-wallet --save $ npm install ethereumjs-util --save 公開鍵から秘密鍵を取得するコード var Wallet = require('ethereumjs-wallet'); var E…

Infura の JSON RPC API で Ethereum アドレスの残高を取得

はじめに Geth と呼ばれる Ethreum クライアントは、JSON RPC API を提供することができます。 JSON RPC API を使用することで、Geth を実行せずに、外部のサーバ(ノード)を使用して、Ether の残高を取得したり、トランザクションを投げたりすることができ…