神沼の「バキっと雑記」ブログ!

雑誌ブログで雑記ブログ!

仮想通貨の『開発初心者』 勉強がてらやってみた一カ月ちょっとの忘備録。

にほんブログ村 漫画ブログへ
にほんブログ村 ⇚応援クリックお願いします!!

毎日、わけわからんコマンドや変数やらと戦いながらも、

割とそれはそれで充実しているなあ

 

と思う神沼です。

 (就活しろよ・・・って突っ込みは、割としていいよ!)

 

ぶっちゃけ、そろそろ無職具合も板についてきて

ダメだな~って思っている今だからこそ、

逆に、他のことをしているという、

慣れたものである。(本当は毎日すごい葛藤してます)w

 

では、開発的な件の本題に入ると

 

今回は、

まったくど素人だった私(11月の中旬ごろまでCLIとかイミフだった)

経歴としては

MR、通販のECサイト事業主(兼トレーダー)

スポーツトレーナー バイオ研究員

 

(開発はかすりもしてないね!ww

経歴については突っ込んではいけない!!

色々苦労してんだw)

 

が、この一カ月ちょっとで行ったことを忘備録として

初心者さん目線でツラツラと記載していきたいと思います。

(超絶長いです)

 

で、なんでこんなことを書くのかだけど、

忘備録ってだけじゃないんだよね。

 

『全く言語とかLinux系とかわかんない初心者の人で、

なんとなく興味あるなら仮想通貨関係って絶好の入り口チャンスでは?』

 

とちょっと思ったからです。

 

やってみたいなあ、

勉強してみたいなあ

っていう誰かの、きっかけになれば幸いです。

 

内容に関しては、

間違ってることも記載してしまう可能性大なので、

参考くらいにしてください。

 

kaminuma.hatenablog.com

とりあえず、上記のブログ記事で記載した、

近々やりたいことリストは完了できました。

 

 

では、『目次』的な何かです↓↓

--------------------------------------------------

・きっかけ・・・githubを教えてもらう

・bitcoindとの出会いと、bitzenydへの移行

・bitzenydでローカルtestnet構築に興味をもつ

ブロックチェーンに文字刻むで興奮

pythonの勉強がてらbotを作る

・bitzenydのtestnetの常駐ノードをVPSでたてたい。

・OP_RETURNの再チャレンジと、他の通貨での実践。

・某コミュニティのテストに参加

・〆

---------------------------------------------------

 

 ・きっかけ・・・githubを教えてもらう

 

f:id:kaminuma:20171225100930j:plain

なんで、こんな黒い画面と睨めっこするようになったのか・・・

 

きっかけはGithubの使い方を教えてもらったことだった。

下記に、どんな風に教えてもらったかを記載していこうと思う。

 

Githubへのアカウント登録(Windowsのブラウザから)

ブラウザ上で、リポジトリを作ってみたりしてこういうものなのかって感覚だけ掴んでみた。

(issue に問題を報告してもらって訂正したり、リポジトリの削除とかいろいろ基本操作を教えてくれた)

GithubDesktopでリモートリポジトリとして作業して、pushする作業してみた。

注)いまだにLinux系でのGithubのコマンド作業はよくわかってない。

 

一応いくつか見てたサイトを貼ってみる。

qiita.com

 

qiita.com

 

で、いまだによくわかってないであろう覚えた内容が役に立っていないようで、

実はめちゃくちゃ役に立ってたのがわかったのは最近の話w

じゃないと、テストに参加するなんてできなかったと思ってます。

 

 

・bitcoindとの出会いと、bitzenydへの移行

そうこうしてる11月の中旬、注文していた

 

この本がやってきます。

これによって、私は大きく沼にはまることになった。

 

正直全部読めていないww

この本は入り口的なものらしいのですが

私にとっては結構難解で、一気読みはできなくて、

必要なところをいまだに引きながら読んでます。

 

読み進めていくうちに、bitcoindをビルドするところがあったんだけど

そもそも、ビルドする環境なんてなかったので、

ビルドする環境をどうしようってなって、

 

『Windows10を最新にアップデートをしたら、Linuxをアプリとして使えるよ』

って言われました。

更新をかけて、アプリをインストールする準備を開始。

 

ubuntu16.04for Windowsをアプリとしてダウンロード。

 

そこからCLIを使うようになったわけです。

これが、何気に性に合ってたんだと思う。

コマンドでパソコンと会話してるみたいな気分で今もやってるけど

あんまり苦痛じゃない。

 

ちなみに、日経Linux11月号で、10月17日にLinuxWindowsで解禁になった点が

ちょっと特集されてます。

初めて買った日経Linux!!とりあえずモチベ維持のためにも

毎号買ってみようと思っております。


ちなみに少しだけサーバー構築でもおまけで助けられました

 

話は戻って、bitcoindをビルドする流れの中、

 

私:『ん?bitcoinとか高すぎて実験するの怖いわあ・・・』

(testnetとかよくわからない当時)

 

と思いました。

それならば、こないだ買って値段もそんなに高額ではないbitzenyでやってみようと思い、bitzenydをビルドすることになったわけです。(当時1円いってなかったのでは?)

 

 

bitzenydを初めてノードとしてビルドできたとき、

なんか嬉しかったですw

 

仮想通貨の門をようやく叩けた気になってましたw

 

で、自分のbitzenyのウォレットに、bitzenyを送金してみたりして、

いじくりまくって、速攻でGOXしました!w

いい経験したと思っています。

(今思えばreindexコマンドブロックチェーン再同期で良かった気がする。)

 

・bitzenydでローカルtestnet構築に興味をもつ

 

それからは通常私たちが使ってる「mainnet」以外に

実験用の「testnet」ってものがあり、

それが割と行っていくのに難しくないものだとわかって

testnetにつなぐっていうのをしてみようと思いました。

 

(今やtestnet繋いで遊んでる時間が長い部類に入るのではなかろうか?)

 私は変わり者なのでtestnetが大好きですw

 

ただ単にtestnetにつないでも面白くないなと思った私は、

testnetをローカル(同じPC内でポート変えてbitzenydを複数立ち上げて繋げる)

例 bitzenyd -testnet -datadir1 -daemon

       bitzenyd -testnet -datadir2 -daemon

   [confファイルは要変更必要]

 

で構築して、マイtestnetブロックチェーンを作って掘り進めてみたんだけど、

オンラインにして他のノードにつないだら、

すぐにそっちの長い方のチェーンに組み込まれてしまいました。

これが、『長い方のチェーンを正当と見なすブロックチェーンの例のあれね!』

って身をもって体験できたわけです。

 

ちなみに、そのときに参考にしたページはこちら

abyssluke.hatenablog.com

顔がPの人に教えてもらったと思います。

いつもありがとうございます。

ほとんど記載内容をそのままで行けたと思います・・・?

ちょっと記憶が定かではない。

 

 ・ブロックチェーンに文字刻むで興奮

上記のような、マイtestnetブロックチェーンを作っては見たものの、長いものには巻かれるのが世の常。

というのを実感した私は、(謎

 

monapartyのopen-betaへ参加した記事がきっかけで

kaminuma.hatenablog.com

きっかけでっていうのは実はちょっと違うけど、

たまたまか神のいたずらか、monapartyのbetaの記事を

開発のお勉強を開始する前に制作してたんですね。

(betaってところが私っぽくて正式リリースの時は記事にしてない

 

この後正式にサービスがリリース。

 

実は、OPEN_RETURNと同じような原理らしい。

ということは後になって聞きました。

 

そんなこんなしているときに、

ツイッターの誰かとの会話の中でブロックチェーンに文字刻める!

って話があったときに、

 

「これ、やりてーーーーー!!!」

 

って思いました。

が、当時できる気がしませんでしたww

pythonのコードとか今でもイミフだしw

 

きっかけはツイッターの会話をチラリとみたことだったんだけど

なんとなく、OP_RETURNというものの存在を知ったわけです。

 

いまだにその辺はしっかり理解してるかは怪しいんだけど、

雰囲気でやっている。

 

とりあえず、coind系のスプリクト言語がScriptって言われてて、

その中にOP_RETURNっていうコマンド?命令?みたいなものがあって、

そいつを振りかざすと、ある特定の場所からscriptを強制的にとめて、その後にmetadataを織り込むことができる(16進数としてトランザクションに記載される)

みたいなフワっとした理解です。多分言ってることは間違っていると思っている。

 

んで、私はGithubからpythonのプログラムをcloneして、

まずはモナコインで行ってみました。

github.com

が、最初のチャレンジ期間では色々と意味を間違ってしまってできず・・・

ソースをちょこまかいじってみたけど、上手くいかず・・・

 

なんと、できないまま一旦の終了を迎えたわけです。

python・・・わからん!!

 

pythonの勉強がてらbotを作る

pythonがマジでわからない!

そう思った私は、一旦のOP_RETURNの内容をうんぬんより

まず基礎をゼロから書いてみよう!

って思って、作りたいもの考えました。

 

こんなプログラムを書いてみたい!!

①パチンコみたいに319分の1の確率で特殊な演出をする

最低限の欲しいのはなんだ??

 

 条件分岐を書かなくていけない

 ランダム要素がいる

 当たりってどうすんだ?

 って感じで考えていった結果

 

結構すんなりできました。

ただ、連続でコード内容を繰り返すっていうのが良くわからず・・・

ちょっと師匠に相談したらbotにして、実用的に実験すれば?

ってなったので、discordにbotを載せる。。ということになったんだけど

 

あんまり日本語の情報がない!!

ってことで日本語情報がいっぱいあった、音楽botの導入から始めました。

discordの音楽botとは

『discordっていうチャットできるサイトに音楽をながしてくれるよ!』

 

ってもので、

音楽botに関しては日本語情報沢山あるし、

環境によって若干導入が違うくらいでした。

☆覚えたこと、discordへのbotの登録の仕方

 

 

で、こっからが本番!

Githubのdiscordのbotページからソースを拝借して

github.com

上で説明したランダムbot君を内容を微調整してbot完了!

 

でした。

結構私が「ww」っていうをよく使うので、

 

「ww」に反応して

抽選を行って、20分の1とかで特別な反応返してくれるbot作りましたw

外れた場合は、「全然ダメだな」って言ってきます。

 

可愛いです。

 

・bitzenydのtestnetの常駐ノードをVPSでたてたい。

・OP_RETURNの再チャレンジと、他の通貨での実践。

・テストに参加

 

こっから三つ同時進行みたいな感じです。

 

・bitzenydのtestnetの常駐ノードをVPSでたてたい。

testnet大好きになっていた私は、

『ちょっと待てよ!?』

って思ったことがありました。

testnetを掘り進めてる人がゼロ状態だったら、testnetでの送金が届かないのでは?

ってことである。(多分届かんよね)

 

これは玄人さんからは、

『まわしてなければ建てればいいじゃん!』

ってなるかもしれないけど、初心者が勉強でやっていく中で、

送金comfirmationが0っていうのは躓く要因では?

と思いました。

(果たしてどれくらいの人がtestnet使って勉強しようってなるのかは知らない。

一人でもいたならそれでいいと思います)

 

じゃあ、少なくとも、comfirmationが増えるのが遅かったとしても、

一回自分でVPSで常駐ノード建ててみても面白いか~ノ

ってノリで、やってみました。誰かの送信の約にたったらいいな~なイメージ。

 

今も一応回してみてます

→ブロックが無駄に進み過ぎないようにcpu制限かなりかけてます

 

なので、多分送金しても無駄にcomfirmationが増えるのが遅いです。

 

VPSを契約してやってみるまで

すごい難しいイメージありました。

やってみたら全然そんなことありませんでした。

人生とは得てしてそんなものなのです。

 

契約したVPSにubuntu16.04を

インストールして、rootの設定とか、ユーザーの設定とか

パス通したりとか、ホームディレクトリの設定とかを最初にしてしまったら、

後は、自分のPCの中のubuntuと同じ感じで操作できました。

 

ここらへんで、CLIをいじるようになっていたのが生きてきたわけですね。

 

・OP_RETURNの再チャレンジと、他の通貨での実践。

とりあえず、やり残した仕事があるぞ!!

って思ってやり直したのがOP_RETURN

 

分かる人からしたら、そんなことしたの?情弱だねえ。

って思われるかもしれませんが、下記を実行しました

        ↓

コード全部印刷しましたw

OPEN_RETURN 835行!

send-OP_RETURN 

途中で時々とぎれちゃってたけどww

 

で、英語があまりとくいじゃないので、地道に翻訳しつつ

コード部分の意味をさぐろうとしても、大してわかりませんでしたww

 

と思ったんですが、私の環境だったらここいじればいいのかな?

って思ってちょっと変えたら・・・

 

f:id:kaminuma:20171228072954j:plain

 

f:id:kaminuma:20171228072649j:plain

 

モナコインでOP_RETURNが完了したので、

 

次にbitzenyでやってみようと思って、

やってみました☆

f:id:kaminuma:20171228073340j:plain

ちょっと微調整はする前の画像結果なので、現在のソース訂正して、

bitzeny-cli以下のコピペでコマンド打って返ってくるようにしてた・・・と思います。

f:id:kaminuma:20171228073046j:plain

bitzenyはinsightつかって、

OP_RETURNがscriptPubKey部分に入っているのもわかります☆

嬉しいね☆

 

正直、大したことしたわけではないんだと思うけど、

本当に嬉しかった。

 

 

 

・テストに参加

実は、これまでの流れは、全部前座です。

 

この目的に帰結します。

1カ月ちょい前。

 

とある計画が某フォーラムで立った時、

 

この辺りの知識や技術を習得するまでは、

ある意味計画だっていたのかもしれない。

 

それは私が立てた計画なのか、

とある男の計画の一部なのかはわからない

 

私なりには踊ってみましたぞw

 

まあ、予想以上に色々できないことがわかった。

それで十分であるw

 

 

じゃあ、まとめ。

この記事で、結局何が言いたいかっていうと、

 

上の方でも書いたけど、

 

これから勉強したいなあ・・・

『なんとなく興味あるけど、

難しいからわかんねえ!!』

 

はもったいないのでは?

ということである。

 

私に限った話で言うと、

私にできることは多分あまりないと思ったww

実際に大したことはできない。

 

これから先、開発系やそっちの世界に行くことはないだろう。

自分で言うと凹むが、

私の今後の成長率などたかが知れていると思っている。

 

ただ、これから始める人のきっかけになって、

彼らが今後成長する姿を後ろから眺めることはできるのだ。

 

だれか一人でも、

この記事がきっかけで、

私もちょっとかじってみようかな?

 

って思ったら、

私の計画としては成功なのである。

 

ヨロシコ!

 

 

長文お読みいただき、ありがとうございます。

 

最後に、参考にさせていただきましたサイト様

製作者様に感謝いたします。

 

wordpress.kaminuma.work

 

2017年12月28日

神沼

 

細々とdoscordで勉強会ちゃんねるしています。(過疎

https://discord.gg/Hvk8Yt5