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
ktr
January 11, 2018
Programming
0
120
cris: demo app for Ethereum smart contract
@Aizu.go#2
ktr
January 11, 2018
Tweet
Share
More Decks by ktr
See All by ktr
詳解 MCP Go SDK / MCP Go SDK
ktr_0731
3
580
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
470
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.4k
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
10k
Monorepo における Go テストの差分実行 / Running Differential Go Tests in a Monorepo
ktr_0731
1
400
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
230
Fuzzy finder as a Go library
ktr_0731
3
6.2k
Other Decks in Programming
See All in Programming
文字コードの話
qnighy
43
17k
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.5k
SourceGeneratorのマーカー属性問題について
htkym
0
140
Ruby x Terminal
a_matsuda
7
580
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
210
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
130
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
520
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
0
210
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
370
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
200
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.6k
Featured
See All Featured
Claude Code のすすめ
schroneko
67
220k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Six Lessons from altMBA
skipperchong
29
4.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
180
Speed Design
sergeychernyshev
33
1.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Leo the Paperboy
mayatellez
4
1.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
430
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
380
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 について思うこと • スマートコントラクトで完結させないと本来のメリットが低減する気がする • いくら堅牢でも本体やスマコンの脆弱性があったら意味がない • パフォーマンスの問題 現状はアプリケーションのスパイスとして使うのが良いと思う