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
2018 - How the Rubyist use Blockchain
Search
蒼時弦や
May 07, 2018
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2018 - How the Rubyist use Blockchain
The talks about ruby and blockchain in rubyelixirconftw.
蒼時弦や
May 07, 2018
More Decks by 蒼時弦や
See All by 蒼時弦や
2024 - COSCUP - Clean Architecture in Rails
elct9620
2
210
2023 - RubyConfTW - Rethink Rails Architecture
elct9620
0
260
20230916 - DDDTW - 導入 Domain-Driven Design 的最佳時機
elct9620
0
490
2023 - WebConf - 選擇適合你的技能組合
elct9620
0
710
20230322 - Generative AI 小聚 ft. Happy Designer
elct9620
0
480
2022 - 默默會 - 重新學習 MVC 的 Model
elct9620
1
520
MOPCON 2022 - 從 Domain-Driven Design 看網站開發框架隱藏
elct9620
1
540
2022 - COSCUP - 我想慢慢寫程式該怎麼辦?
elct9620
0
310
2022 - COSCUP - 打造高速 Ruby 專案開發流程
elct9620
0
340
Other Decks in Technology
See All in Technology
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
250
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
430
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
120
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
4k
世界、断片、モデル。そして理解
ardbeg1958
1
130
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
570
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
350
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
5.2k
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
290
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.5k
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Crafting Experiences
bethany
1
220
Un-Boring Meetings
codingconduct
0
350
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
280
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Building the Perfect Custom Keyboard
takai
2
810
Optimizing for Happiness
mojombo
378
71k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
What's in a price? How to price your products and services
michaelherold
247
13k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
How the Rubyist use Blockchain
WEB DEVELOPER GAME DEVELOPER 襟 儘 䓛⛳ @elct9620
None
I will talk about What is the Blockchain The examples
use Ruby and Ethereum
What is the Blockchain
Linked List Cryptography Key-Value Data Store Distributed System
There is nothing new for us
None
Cryptocurrency
None
So, how the Blockchain works?
Chain =~ Linked List
The Chain Block #1 Block #2 Block #3 Pointer Pointer
Ok, I think you already learned it!
But, we have to limit anyone to write it!!!
1. Proof of Work
1. Prevent mass request from somebody 2. Other people can
verify in short time Cryptography
Use cryptography to resolve question!
Cryptography Network Hash start with “000” Workers Define a Question
Broadcast
Cryptography Workers 000abcdefaaabc… Network Try hash block Submit
Cryptography Network 000abcdefaaabc Block Created Verify result Accept
Wait! The same content will get the same hash result!
None
We add a random “Proof” string with block data
So, the worker should spend the time
And others can check it in short time
If we receive many correct answers…
Which one should accept?
2. Byzantine Generals Problem
Distributed 1. Longest is right 2. 51% node think it
is right
But, we didn’t discuss the algorithm in this talk
And last
How the Blockchain save data?
Merkle Tree
None
Very useful to update and verify data
But read will spend more time
Should I use pure ruby gem to operate blockchain?
It is hard to implement the same API in pure
Ruby
Use the existed API to operate Blockchain.
But, you can implement blockchain in Ruby
Example Ethereum’s IPC Use Ruby to operate Ethereum
IPC =~ UnixSocket
None
How to get IPC and comminuted with it?
IPC 1. Ethereum Wallet 2. brew install geth 3. Compile
from source code
“geth —light —testnet”
But I suggest using Ethereum Wallet
Because you can find IPC file very easy
But how to use UnixSocket to operate Ethereum?
JSON-RPC 2.0
None
None
And it always ends with a linefeed (\n)
None
None
Now, we can interact with Ethereum in Ruby
But the result has many hash value
What are the meaning and real data?
Ethereum Data 1. Call another API to get transaction value
2. Read from “data” depend on ABI
If we just want to know transaction value
It always contains in API response
So, we talk about smart contract event
None
But we got the data in hex
None
It always returns the 32byte hex string for us
So, we need ABI to help us know the data
type
None
Demo - Subscribe event and get data
Now, we know what can we do on the Ethereum
And last, is there has any useful resource?
Ruby Reference 1. digest-sha3 2. rlp 3. ruby-ethereum 4. Naivechain.rb
Conclusion
Build a blockchain in Ruby can help us learn it
And didn’t try to write a client in pure ruby
THANKS