Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
cris: demo app for Ethereum smart contract
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ktr
January 11, 2018
Programming
120
0
Share
cris: demo app for Ethereum smart contract
@Aizu.go#2
ktr
January 11, 2018
More Decks by ktr
See All by ktr
詳解 MCP Go SDK / MCP Go SDK
ktr_0731
3
600
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
530
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.5k
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
10k
Monorepo における Go テストの差分実行 / Running Differential Go Tests in a Monorepo
ktr_0731
1
410
Designing libraries in Go way
ktr_0731
7
1.6k
Go Modules and Proxy Walkthrough
ktr_0731
8
27k
ソフトウェアの複雑さに立ち向かう技術 / Tackling software complexity
ktr_0731
0
240
Fuzzy finder as a Go library
ktr_0731
3
6.2k
Other Decks in Programming
See All in Programming
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
130
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
950
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
500
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
140
Java 21/25 Virtual Threads 소개
debop
0
320
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
170
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
250
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
290
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
7
1.2k
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
Being A Developer After 40
akosma
91
590k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building Applications with DynamoDB
mza
96
7k
Visualization
eitanlees
150
17k
Unsuck your backbone
ammeep
672
58k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.8k
Test your architecture with Archunit
thirion
1
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Transcript
ぼくのかんがえたさいきょうの ファイル共有サイト @ktr_0731
$ whoami @ktr_0731 / ktr0731 s123 at u-aizu STEINS;GATE はてなインターン
2017 ソラミツ株式会社 サーバサイド
ktr0731/salias • サブコマンドに対してエイリアスをかけられるツール
None
ktr0731/evans • 既存クライアントより表現力豊かな gRPC クライアント • いい感じに補完が出る
None
Blockchain すごい
P2P, PoX, 改竄が検出可能・修正可能…
なにか作ってみたい
(なんとなく) ファイル共有サイトをつくりたい
めちゃくちゃ堅牢なものがつくれそう
ktr0731/CRIS
[WIP] ktr0731/CRIS
[WIP] CRIS
アーキテクチャ的なもの • Web フロントエンド • サーバサイド • Ethereum
フロントエンド • ファイルアップロードできる画面 • Riot.js
フロントエンド • ファイルアップロードできる画面 • Riot.js • 進捗を奪われた最大の原因
バックエンド • Go • Clean Architecture + Hexagonal Architecture /
DDD • フロントとコンテンツデータをやりとりする • データは暗号化して保存して、サーバが内容を見れないようにしたかった
Ethereum • Solidity (きびしい) でスマートコントラクトを書いて、EVM にデプロイする • 今回は、ファイルの改竄検知のためだけにつかう
• 全体のアーキテクチャ • Ethereum • Geth • Truffle, Solidity •
フロントエンド • Riot.js • しんどいところ • バックエンド • CA, HA, DDD
全体のアーキテクチャ esa.io
Ethereum • Geth: go-ethereum • Truffle: Ethereum のスマコンのためのフレームワーク • Solidity:
Ethereum 上で動くスマートコントラクト用の言語 • しんどい
フロントエンド • Ethereum 上のコントラクトへ直接アクセスする • サーバに依存したくなかった • Riot.js は書くのが楽で良い •
ConsenSys/truffle-solidity-loader がメンテされてなくてまともに動かない • 全体的にフロントエンドが苦手なので難しい • メインのロジックを結構やっている
サーバサイド • Go で初めて CA, HA, DDD を取り入れてみた • わりといい感じに書ける
• 一番実装が少なかったけど、一番楽しかった
Clean Architecture
Hexagonal Architecture
DDD • (CA でいう) エンティティ層をドメイン層と見なす • ドメインが小さいのであまり DDD の意味がなかったかもしれない
Blockchain の使い方は正しいか? • あまり意味がない • 基本的な構造は共通している (気がする) • KYC
Blockchain について思うこと • スマートコントラクトで完結させないと本来のメリットが低減する気がする • いくら堅牢でも本体やスマコンの脆弱性があったら意味がない • パフォーマンスの問題
Blockchain について思うこと • スマートコントラクトで完結させないと本来のメリットが低減する気がする • いくら堅牢でも本体やスマコンの脆弱性があったら意味がない • パフォーマンスの問題 現状はアプリケーションのスパイスとして使うのが良いと思う