NFTオークションを実装してみた

以下のドキュメントを元にNFTの鋳造と、鋳造時に発行したトークンに対してオークションを行えるようにしました。流れを把握しやすいようコンテンツのアップロードとコントラクトのデプロイ、書き込みをすべてクライアント側のJavascriptで行っていますが、実際にオークションシステムとして利用されるためにはゲートウェイを用意してそこでコントラクトの書き込み等を行うべきかと思います。 docs.ipfs.io solidity-jp.readthedocs.io

続きを読む

NFTを鋳造してみた

以下のIPFSのページを参考にNFTの鋳造をしてみました。 docs.ipfs.io

鋳造というのはMint an NFT with IPFSのMint の訳で意味としては材料を溶かして型に流し込むやり方で製造方法のことのようで、硬貨を鋳造などに使われる単語のようです。また、そもそものNFTですが非代替性トークンと訳されていまして特徴としては重複のないトークンのようで、イーサリアムネットワークですでに実装されている規格としてERC721があります。こちらはイーサリアムネットワークのコントラクト記述言語であるSolidityにて利用することが出来ます。

github.com

続きを読む

IPFS Desktop で立ち上げたノードに対して JS でアップロード

IPFS とは

IPFS とは P2P ネットワーク上でハイパーメディアプロトコルで、コンテンツのハッシュがアドレスとして使われるのでアップロード内容が変化したら参照するアドレスにも変更が必要といったものになります。ブロックチェーンのストレージとしての相性が良いようでブロックチェーンの台帳側には IPFS のアドレス(CID)を書き込むことで、その時点のコンテンツの履歴を残せるようになっています。

また、IPFS で使われる p2pプロトコルlibp2pになっていまして IPFS のために作られたもののようです。

libp2p.io

今回は IPFS 学習のため IPFS Desktop で立ち上げたノードに対して JS でアップロードしてみました。 IPFS Desktop は以下で取得できます。

github.com

IPFS Desktop で実際に立ち上がるノードは go-ipfs のもので IPFS Desktop はその UI となっています。
GitHub - ipfs/go-ipfs: IPFS implementation in Go

また、自前でノードを立ち上げてネットワーク上でコンテンツを共有ではなくブラウザからのアップロードを試したかったので js-ipfs でipfs-http-clientを利用しています。
GitHub - ipfs/js-ipfs: IPFS implementation in JavaScript

実際に確認したソースは examples にあるhttp-client-bundle-webpackになります。
js-ipfs/examples/http-client-bundle-webpack at master · ipfs/js-ipfs · GitHub

続きを読む

ReactAdminを試してみた

ReactAdminを少し触ってみました。 marmelab.com

そもそもReactAdminとはReactでダッシュボードを作成するためのフレームワークのようで、公式のページでは"A Web Framework for B2B applications"とあるので凝ったページというよりは一般的なダッシュページとかを簡単に作れるのかなと思います。

公式のドキュメントは以下になりまして、"Data Provider"と"Auth Provider"がAdminコンポーネントプロパティになっていまして、それぞれ一覧データの取得と認証の設定になります。それからResourceコンポーネントが一覧に出す項目の内容を設定するためのコンポーネントになっています。 marmelab.com

とりあえずAuth Providerの設定を行い認証が出来るところまで確認できました。

github.com

続きを読む

Solidityでオークションを実装しました

Ethereumネットワークでのコントラクト開発に使われるSolidityでオークションを実装してみました。まあSolidityのページにあるexampleをほぼそのまま写経してコンパイルして確認してみただけなのですが、実際に動かすことで理解が深まるかと思います。 solidity-jp.readthedocs.io

実装したものは以下になります。 github.com

続きを読む

Chainlinkについて調べてみた

  • ブロックチェーンのオラクル問題とは何か?
    • ラクル問題とは
    • ラクルの要件
    • ラクルの問題点
    • Chainlink での安全で信頼性の高いオラクルのスタンダード
  • Chainlink で実現するスマートコントラクトの 77 のユースケース
    • 分散型金融
      • ステーブルコイン
      • 先物
      • 自動化された資産管理
    • 外部への支払い
      • 銀行支払い
      • 暗号通貨決済
    • ゲームとランダム性
      • 宝くじ
    • 保険
      • 作物保険
      • 航空保険
      • 住宅保険
      • 生命保険
      • 健康保険

Chainlinkを調べるにあたりChainlink Japanがmediumにあげている公式の和訳記事を読んでみました。

chainlink-japan.medium.com

ブロックチェーンのオラクル問題とは何か?

読んだ記事は以下で
ブロックチェーンのオラクル問題とは何か? - Chainlink Community - Medium
公式の記事は以下になります。
What Is the Blockchain Oracle Problem?

続きを読む

圏論学習中メモ

米田の補題まで理解できるように圏論の学習を進めていまして、メモを残すことで大分整理できてきた気がします。

圏論学習中メモ

    • 対象 a,b があったとき f: a -> b のように対象間の矢印を射といい、このとき a を始対象、b を終対象という。また f: a -> b のとき cod(f)=b で dom(f)=a で射に対する始対象、終対象を表す。
    • 対象 a があったとき Id_a: a -> a のように自分自身に向かう射を恒等射という
    • 対象 a,b があり f: a-> b の射と g: b -> a の射があるとき、g を f の逆射といい、逆射をもつ射のことを同型射と呼び、その時の対象は同型と呼ぶので a と b は同型となる
続きを読む