ラベル ブロックチェーン の投稿を表示しています。 すべての投稿を表示
ラベル ブロックチェーン の投稿を表示しています。 すべての投稿を表示

2022年1月13日木曜日

MetaMask のインストール方法

MetaMask のインストール方法

概要

イーサリアムやビットコインのウォレットとして使えます
特に Web に対応しているイーサリアムのサービス (OpenSea) などを使う場合には必須のウォレットになります

環境

  • macOS 11.6.2
  • Chrome 96.0.4664.110

エクステンションのインストール

ここからインストールします

基本はこれで終わりです

ウォレットの新規作成

ウォレットの作成から画面の指示に従って同意やウォレットパスワードの設定をするだけです

リカバリフレーズは忘れずに保管しておきましょう

イーサリアムのウォレットアドレスの確認方法

イーサリアムのウォレットの作成が完了する以下のような画面になります

画面上部のコピーボタンを押すとウォレットアドレスがコピーできるのでこれを使ってマイニングや送金などを行います

ウォレットの再表示

Chrome の拡張一覧に metamask のキツネのボタンがあるので押すだけです

しばらくするとポップアップでウォレットの情報が確認できます
そこから「ビューの展開」などを行うとブラウザのタブで表示することができます

最後に

これで OpenSea などのブラウザベースの NFT マーケットプレイスなどが使えるようになります

参考サイト

2022年1月12日水曜日

Intel Mac だと ethminer は動作しなかった

Intel Mac だと ethminer は動作しなかった

概要

Intel Mac ではどうやら ethminer は動作しないようです

https://github.com/ethereum-mining/ethminer/issues/1839

一応 ethminer のインストール方法や使い方、コマンドなどは他のプラットフォームでも使えそうなので残しておきます

環境

  • macOS 11.6.2
  • ethminer 0.18.0

インストール

ここから darwin 版をダウンロードし解凍します

あとは PATH の通ってる場所に配置しましょう

  • tar zvxf ethminer-0.18.0-cuda-9-darwin-x86_64.tar.gz
  • cp bin/ethminer /usr/local/bin
% ethminer --version

ethminer 0.18.0
Build: darwin/release/appleclang

ウォレットの取得

なんでも OK です
自分は Enjin wallet をインストールしていたのでそこからウォレットアドレスを取得しました

プールの選択

https://ethermine.org/ このあたりが無難です
他にもいろいろとあります

起動

  • ethminer -G -P stratum1+ssl://your_wallet_address.machine1@asia1.ethermine.org:5555

-G は OpenCL を使うオプションで -P はプールのアドレスをプロトコルやウォレットと一緒に指定するオプションです

エラー

Mac の場合は以下のエラーになります

ethminer 0.18.0
Build: darwin/release/appleclang

Unrecognized platform Apple
Error: No usable mining devices found

M1Mac ならいける?

ethminer から fork した ethminer-m1 を使えば動作するようです

https://github.com/gyf304/ethminer-m1

ハッシュレートもまぁまぁよさそうです

CPU を使ったマイニングをすれば良さそう?

その場合は geth を使えばいいようです

https://github.com/ethereum-mining/ethminer#can-i-cpu-mine

2022年1月11日火曜日

Mac でイーサリアムの開発環境構築

Mac でイーサリアムの開発環境構築

概要

Mac でイーサリアム API を使った開発ができる環境を構築してみました
今回はイーサリアムの golang 実装である geth を使います

マイニングもできますがあくまでもローカルに構築した環境なので実際に報酬などは受け取れません

環境

  • macOS 11.6.2
  • geth 1.10.15-stable

geth のインストール

  • brew install ethereum

geth ではなく ethereum という Formulae をインストールしましょう

genesis ファイルの作成

  • mkdir eth_private_net
  • vim eth_private_net/myGenesis.json
{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "berlinBlock": 0
  },
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "",
  "gasLimit": "0x8000000",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

初期化

  • geth --datadir ./eth_private_net init ./eth_private_net/myGenesis.json
INFO [01-07|11:25:56.104] Maximum peer count                       ETH=50 LES=0 total=50
INFO [01-07|11:25:56.123] Set global gas cap                       cap=50,000,000
INFO [01-07|11:25:56.124] Allocated cache and file handles         database=/path/to/eth_private_net/geth/chaindata cache=16.00MiB handles=16
INFO [01-07|11:25:56.166] Writing custom genesis block
INFO [01-07|11:25:56.174] Persisted trie from memory database      nodes=0 size=0.00B time="357.389µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [01-07|11:25:56.177] Successfully wrote genesis state         database=chaindata hash=7b2e8b..7e0432
INFO [01-07|11:25:56.178] Allocated cache and file handles         database=/path/to/eth_private_net/geth/lightchaindata cache=16.00MiB handles=16
INFO [01-07|11:25:56.215] Writing custom genesis block
INFO [01-07|11:25:56.215] Persisted trie from memory database      nodes=0 size=0.00B time="5.795µs"   gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [01-07|11:25:56.217] Successfully wrote genesis state         database=lightchaindata hash=7b2e8b..7e0432

geth ノード起動

  • geth --networkid “15” --nodiscover --datadir ./eth_private_net console

30303 で起動しています

動作確認

コンソールでイーサリアム API をコールできるコマンドを実行できます

> eth.getBlock(0)
{
  difficulty: 16384,
  extraData: "0x",
  gasLimit: 134217728,
  gasUsed: 0,
  hash: "0x7b2e8be699df0d329cc74a99271ff7720e2875cd2c4dd0b419ec60d1fe7e0432",
  logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  miner: "0x3333333333333333333333333333333333333333",
  mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
  nonce: "0x0000000000000042",
  number: 0,
  parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
  receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  size: 507,
  stateRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  timestamp: 0,
  totalDifficulty: 16384,
  transactions: [],
  transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  uncles: []
}

それ以外にもマイニング用の API や送金の API も試せます

  • admin.nodeInfo
  • net.peerCount
  • eth.accounts

最後に

今回は開発環境を構築してみました
イーサリアムを使ったブロックチェーンアプリなどを構築する場合にはこんな感じで開発用の API を構築するようです

マイニングだけしたい場合には ethminer というツールがありますが GPU (opencl or cuda) が必要になり GPU がない環境でのマイニングは geth を使うことになります

参考サイト