NFTオークションを実装してみた
以下のドキュメントを元にNFTの鋳造と、鋳造時に発行したトークンに対してオークションを行えるようにしました。流れを把握しやすいようコンテンツのアップロードとコントラクトのデプロイ、書き込みをすべてクライアント側のJavascriptで行っていますが、実際にオークションシステムとして利用されるためにはゲートウェイを用意してそこでコントラクトの書き込み等を行うべきかと思います。 docs.ipfs.io solidity-jp.readthedocs.io
続きを読むNFTを鋳造してみた
IPFS Desktop で立ち上げたノードに対して JS でアップロード
IPFS とは
IPFS とは P2P ネットワーク上でハイパーメディアプロトコルで、コンテンツのハッシュがアドレスとして使われるのでアップロード内容が変化したら参照するアドレスにも変更が必要といったものになります。ブロックチェーンのストレージとしての相性が良いようでブロックチェーンの台帳側には IPFS のアドレス(CID)を書き込むことで、その時点のコンテンツの履歴を残せるようになっています。
また、IPFS で使われる p2p のプロトコルはlibp2p
になっていまして IPFS のために作られたもののようです。
今回は IPFS 学習のため IPFS Desktop で立ち上げたノードに対して JS でアップロードしてみました。 IPFS Desktop は以下で取得できます。
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の設定を行い認証が出来るところまで確認できました。
続きを読むSolidityでオークションを実装しました
Ethereumネットワークでのコントラクト開発に使われるSolidityでオークションを実装してみました。まあSolidityのページにあるexampleをほぼそのまま写経してコンパイルして確認してみただけなのですが、実際に動かすことで理解が深まるかと思います。 solidity-jp.readthedocs.io
実装したものは以下になります。 github.com
続きを読むChainlinkについて調べてみた
- ブロックチェーンのオラクル問題とは何か?
- Chainlink で実現するスマートコントラクトの 77 のユースケース
- 分散型金融
- ステーブルコイン
- 先物
- 自動化された資産管理
- 外部への支払い
- 銀行支払い
- 暗号通貨決済
- ゲームとランダム性
- 宝くじ
- 保険
- 作物保険
- 航空保険
- 住宅保険
- 生命保険
- 健康保険
- 分散型金融
Chainlinkを調べるにあたりChainlink Japanがmediumにあげている公式の和訳記事を読んでみました。
ブロックチェーンのオラクル問題とは何か?
読んだ記事は以下で
ブロックチェーンのオラクル問題とは何か? - 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 は同型となる