2021-01-01から1年間の記事一覧

C++でProtocol Bufferを試してみた

Protocol Bufferとはシリアライズ、デシリアライズ対象のデータ構造を定義したインタフェース定義言語になります。言語に依存しないのでgRPCなどの通信でも使われていまして、Googleのオリジナルの実装にはC++, Java, Pythonなどがあります。 developers.goo…

JavaのNettyとC++のBoost.AsioでTCP通信してみた

JavaのNettyとC++のBoost.AsioでTCP接続を試してみたときのメモになります。 Nettyとは Netty は非同期のイベント駆動型ネットワークアプリケーションフレームワークで、FTP,SMTP,HTTPなどのレガシープロトコルから得られた経験をもとに開発の容易さ、パフォ…

Javaでサイズ付きMapを比べてみた

Javaで上限サイズ付きのMapが実装が必要でしたのでいくつか比べてみました。具体的にはLinkedHashMapとCaffeineを使ったので、その実装内容を見たうえで結果を比較していきたいと思います。

パーサジェネレータでパーサを出力してみる

BNFを読み込んでパーサを出力し、実際にパースしASTの出力が確認できました。 パーサを出力するものはパーサジェネレータというと思うのですが、こちらはパーサコンビネータを使っています。パーサコンビネータはパーサのパーツを組み合わせてより複雑なパー…

SpringCacheを試してみた

SpringBootではSpringCacheというものがあり、内部的にはCaffineが利用されているということで確認してみました。baeldungの説明を参考に進めています。 www.baeldung.com github.com

Rustのactix-webでJWTを試してみた

今更ですがRustのactix-webでJWT(JSON Web Token)を試してみました。JWTとはJsonをBase64URLエンコードし、署名を付けることで改ざんを検知できるようなものになっていますす。JWTをクッキーにして渡すことでサーバサイドでセッションを保有しないということ…

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

以下のドキュメントを元にNFTの鋳造と、鋳造時に発行したトークンに対してオークションを行えるようにしました。流れを把握しやすいようコンテンツのアップロードとコントラクトのデプロイ、書き込みをすべてクライアント側のJavascriptで行っていますが、実…

NFTを鋳造してみた

以下のIPFSのページを参考にNFTの鋳造をしてみました。 docs.ipfs.io 鋳造というのはMint an NFT with IPFSのMint の訳で意味としては材料を溶かして型に流し込むやり方で製造方法のことのようで、硬貨を鋳造などに使われる単語のようです。また、そもそもの…

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

IPFS とは IPFS とは P2P ネットワーク上でハイパーメディアプロトコルで、コンテンツのハッシュがアドレスとして使われるのでアップロード内容が変化したら参照するアドレスにも変更が必要といったものになります。ブロックチェーンのストレージとしての相…

ReactAdminを試してみた

ReactAdminを少し触ってみました。 marmelab.com そもそもReactAdminとはReactでダッシュボードを作成するためのフレームワークのようで、公式のページでは"A Web Framework for B2B applications"とあるので凝ったページというよりは一般的なダッシュページ…

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

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

Chainlinkについて調べてみた

ブロックチェーンのオラクル問題とは何か? オラクル問題とは オラクルの要件 オラクルの問題点 Chainlink での安全で信頼性の高いオラクルのスタンダード Chainlink で実現するスマートコントラクトの 77 のユースケース 分散型金融 ステーブルコイン 先物 …

圏論学習中メモ

米田の補題まで理解できるように圏論の学習を進めていまして、メモを残すことで大分整理できてきた気がします。 圏論学習中メモ 射 対象 a,b があったとき f: a -> b のように対象間の矢印を射といい、このとき a を始対象、b を終対象という。また f: a -> …

Hyperledger Tutorial のコマーシャルペーパー をやってみた

前回やった Hyperledger のチェインコードデプロイのチュートリアルに引き続ぎコマーシャルペーパーのチュートリアルもやってみました。 以下のfabric-samplesリポジトリの commercial-paper 配下を動かしていきます。 github.com ネットワーク起動 まずは d…

Hyperledgerのチュートリアルでチェインコードをデプロイしてみた

Hyperledger Tutorial をやってみた Hyperledger のチュートリアルをやってみたので、その時の内容をまとめてみたいと思います。 環境構築 まずは環境構築ですが、以下に手順がまとめられています。 hyperledger-fabric.readthedocs.io 手順の中である以下の…

Hyperledger fabric のユースケースを調べてみた

エンタープライズでのブロックチェーン 公式サイトの方に説明があります。 hyperledger-fabric.readthedocs.io ブロックチェーンを使った技術として Bitcoin や Etherenum などの暗号資産が有名ですが、エンタープライズ向けのユースケースで活用する動きが…

Blockchain 学習メモ

Blockchain および、代表的な実装である Bitcoin について学習したのでメモをまとめてみます。 Bitcoin 論文 まず Bitcoin の論文を読んでみます。 ・原文 https://bitcoin.org/bitcoin.pdf ・日本語訳 https://coincheck.blog/292 概要を読んだところ信頼の…

ファイル監視ツール開発日誌20210131

ファイル監視ツールの方をちょくちょく進めてまして、正規表現での検索は動くようになりました。 正規表現の条件を複数設定できるので、いくつかの条件でまとめて絞ってみたい場合などはこれで結構楽に管理できるかもしれないです。最初は検索だけできればよ…

ファイル監視ツール開発日誌20210102

年末年始の時間を使って開発を進めたブラウザ上で動かすファイル監視ツールで、とりあえずファイルの中身が見えるくらいには進みました。 sftp経由でのtailも動きます。