ピヨピヨ日記

毎日ピヨピヨしています

オリジナル暗号通貨 PiyoPiyoCoin を作って5000兆ピヨピヨを入手した

いろいろと実験したかったので、とりあえず久しぶりにオリジナル暗号通貨(ERC20トークン)を作ってみた。

今回は、次の要件を満たすように作った。

  • ERC20 標準 に準拠。
  • 最大発行数(tokenCap)を設けることができる。
  • Ether で購入することができる。
  • Ether で購入するときのレートを決めることができる。

また、前回は Truffle を使用してデプロイしたけど、今回は Remix と MetaMask をつかってみた。個人的には Truffle のほうが好きだけど、多くのひとにとっては Remix + MetaMask の組み合わせのほうがデプロイしやすいと思ったので。あとで、つくる手順をかんたんにメモしておきたい。

 

とりあえず、コードはここ

 

そんなこんなで、今回作った PiyoPiyoCoin の内容はつぎのような感じです。

  • トークン名: PiyoPiyoCoin
  • トークンシンボル: PIYOPIYO
  • 最大発行数: 50000000000000000000 PIYOPIYO
  • レート: 5000兆 PIYOPIYO/ETH(1 Ether で 5000兆 PIYOPIYO)

とりあえず、初期発行数として、5000兆ピヨピヨを発行して入手!やったね!

 

f:id:plygnd:20180114143447p:plain

 

(だけど、このコントラクトをデプロイするのに、トランザクション手数料としておよそ $100 ぶんの Ether を使ってしまった...手数料高い><)

 

MetaMask を使っている場合は、次のボタンを押すと入手できるので、余裕のある方は試しに入手してみてください。

 

 

PiyoPiyoCoin 入手後に、MetaMask の TOKENS タブ => ADD TOKEN にいって、Token Contract Address という項目に PiyoPiyoCoin のコントラクトアドレス(0x8fBbF6223d0dB08AbC1f5EfFF65d08E29F1D7BC1)を入力すると、MetaMask で PiyoPiyoCoin の残高を知ることができます。

 

f:id:plygnd:20180114142720p:plain
 

MyEtherWallet から PiyoPiyoCoin を入手するのも、単純に 0x8fBbF6223d0dB08AbC1f5EfFF65d08E29F1D7BC1 に Ether を送付すればok。

MyEtherWallet では、Token Balances で Add Custom Token というボタンを押して、Token Contract Address に 0x8fBbF6223d0dB08AbC1f5EfFF65d08E29F1D7BC1、Token Symbol に PIYOPIYO、Decimals に 18 と入力すると PiyoPiyoCoin の残高を知ることができます。

f:id:plygnd:20180114142915p:plain

 

また、Etherscan を使用すると、PiyoPiyoCoin のトランザクション履歴や保有率を確認できたりします。

https://etherscan.io/token/0x8fbbf6223d0db08abc1f5efff65d08e29f1d7bc1#balances

 

おもしろい!

非中央集権型 DOOH(屋外デジタル広告)

言ったもの勝ちのタイトルです。

 

昨日つくったなんちゃって非中央集権型広告配信システムを使って、屋外デジタル広告デバイス(という名前がついたRasberry Pi)に広告を配信してみました。(お金がつらいのでテストネットで広告配信)

 

f:id:plygnd:20180111112715j:plain

 

これを駅前とかにおけば立派なDOOH!

Ethereum で非中央集権型広告配信システムをつくってみた

ちょっとおおげさなタイトルですが、Ethereum を使って広告配信システムっぽいものをつくれないかと思い、実験として酔った勢いで作ってみました。下に表示されているやつは、Ethereum のブロックチェーン上に記録された情報をもとに JavaScript で広告を表示しています。(広告配信というとそれっぽく聞こえるのですが、Ethereum に広告配信時間と広告テキスト・ URLが記録してあるだけです。)

 

 

 

この広告を表示する JavaScript 自体はサーバに置いてありますが、いつ・どのような広告を表示するか?といった情報はブロックチェーン上に乗っかっています。なので、クライアントが Ethereum のブロックチェーン上の情報を読みにいくことができれば、広告用のサーバに広告をリクエストすることなく広告を配信することができます。なお、広告枠が購入されていない状態(いわゆる空き枠)だと、空枠って表示されるようにしています。広告枠は空いていれば誰でも購入可能です。

 

広告枠はこちらから購入できます: https://piyolab.github.io/DAD/

(なんか MetaMask の挙動が TestNet - Ropsten と異なっていて、「広告を出稿」ボタンを押してからかなり時間がかかってMetaMaskのポップアップが出る。あと、Gas Limit は入力する文字列の長さによっては1000000とかかなり多めにする必要がある)

 

今回作ったものはかなり適当なものですが、すっごく頑張ればそれなりのものは作れるかも、という感触がありました。ただ、広告にブロックチェーンを使う意義は今のところあんまりわからなくて、広告ネットワーク運用のコスト削減によって手数料が削減できて、広告費を直接暗号通貨で支払うことができるくらいかなあ、と思っています。やっぱり、なんでもかんでもブロックチェーンや暗号通貨と組み合わせればいいってものじゃないですね。

 

あと、Etehreum のトランザクションがたくさん発生しちゃうとつらい感じになるので、インプレッション課金とかそういうのは(少なくとも Ethereum では)ちょっと難しそうだなあと思いました。今回は、インプレッション課金で実装するのは難しそうだったので、期間保証で配信することにしました。オンライン広告には向いていないけど、DOOH(屋外デジタル広告)とかに使うと面白そうだなあ、とおもったり。渋谷の巨大屋外ディスプレイの広告枠が暗号通貨で買える未来がくるのもそう遠くない(かも)。

 

それにしても Ether の高騰がつらい。超シンプルなスマートコントラクトをデプロイするのに、$37.84 もかかってしまいました。手数料もかなり高くなってしまっていていまのところ実用するのはかなり難しいかんじ。貴族じゃないと Ethereum で遊ぶことはできないのか...

 

体重計のAPIから体重を取得

とりあえず、体重計で測った体重を API 経由で取得する方法を勉強した
体重計上の表示では数字丸められて 60kg だったけど、API では小数点以下3桁までの数字が取れるみたい。
つい ruby で書いちゃったけど、どうかんがえても nodejs で書いたほうがよさそうだよなあ

 

f:id:plygnd:20180103021909p:plain

 

コードとしてはまったく賢いことをやっていなくて、単純に URL 叩いて、帰ってきたJson をパースして情報を取っているだけ。

 

APIドキュメントはこちら:

https://developer.health.nokia.com/api/doc#api-Measure-get_measure

 

最初ライブラリを使おうとおもったけど、なんか使い方を調べるのがめんどくさくなって URL を直接叩くことにした。