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
Amplify × ブロックチェーン で取引管理システムを作った話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
北見海貴
July 27, 2023
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amplify × ブロックチェーン で取引管理システムを作った話
北見海貴
July 27, 2023
More Decks by 北見海貴
See All by 北見海貴
ある製造業の会社全体のAI化に1エンジニアが挑んだ話
kitami
2
1.3k
エンジニアがデザインまで担うための AI駆動UIデザイン/フロントエンド開発実践
kitami
4
1.9k
【PoCで終わらない】運用フェーズまで見据えたAI駆動UIデザイン/フロントエンド開発実践
kitami
1
580
Other Decks in Programming
See All in Programming
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
460
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
100
Creating Composable Callables in Contemporary C++
rollbear
0
200
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
160
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
140
フィードバックで育てるAI開発
kotaminato
1
110
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
自作OSでスライド発表する
uyuki234
1
3.8k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
310
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.5k
Vite+ Unified Toolchain for the Web
naokihaba
0
740
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
What's in a price? How to price your products and services
michaelherold
247
13k
New Earth Scene 8
popppiees
3
2.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Designing for Timeless Needs
cassininazir
1
320
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
Marketing to machines
jonoalderson
1
5.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
Amplify Boost Up #3 Amplify × ブロックチェーンで取引管理シス テムを作った話 株式会社 PURPOM MEDIA LAB (ピュアポムメディアラボ) 北見 海貴
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
自己紹介 北見海貴 Twitter: @kita3222 Github: Kaiki-kk 所属 株式会社 Purpom Media Lab Amplify歴 約2年 2021.04 Amplifyを使い始める 2023.05 amplify-category-apiにコントリビュート 2023.06 Amplify Japan User Group 運営に参画
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
目次 1. 自己紹介 2. 会社紹介 3. 今回作ったシステムについて 4. まとめ 5. 最後に
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
会社紹介
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
Purpom Media Lab
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
MVP開発 MVP(最小限のプロダクト)を早期に 実際にユーザが触れることができる状 態を継続的に構築します。 お客様が実際にユーザー目線で触れ、 フィードバックをすることで、大きな ずれを防ぎます。 またリリース後もフィードバックを通 してアップデートすることで市場から の支持が得られるサービスを構築する ことができます。
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
MVP開発 MVP(最小限のプロダクト)を早期に 実際にユーザが触れることができる状 態を継続的に構築します。 お客様が実際にユーザー目線で触れ、 フィードバックをすることで、大きな ずれを防ぎます。 またリリース後もフィードバックを通 してアップデートすることで市場から の支持が得られるサービスを構築する ことができます。 本日はMVP開発の一貫で作ったブロックチェーンを用いた取引管理システ ムの話をさせていただきます
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
今回作ったシステムについて
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
システム概要 - 企業間の取引を管理するシステム - ブロックチェーン技術を用いて高い改ざん耐性や信頼性を確保
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ブロックチェーンで何をするのか - ユーザーごとにウォレットを作成 - ユーザー間の取引情報をブロックチェーン にトランザクションで送信する - データベースとブロックチェーンのトランザ クションを紐付けて同期
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
アーキテクチャ
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
使用したAmplify Libraries Amplify Libraries - 認証(Cognito) - GraphQL API(Appsync) - データベース(DynamoDB) - API Gateway - Parameter Store - Lambda - Cognito トリガー - DynamoDB Stream トリガー - API Gateway → Lambda
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
開発期間・開発規模 開発期間 - 2ヶ月(初期リリース: 1.5ヶ月、フィードバック反映: 0.5ヶ月) 開発人数 - 2名
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
システムフロー 1. ユーザーがアカウント登録すると、ブロックチェーンでウォレットを作成する 2. ユーザーが取引を行うと、ブロックチェーンにトランザクションを送信する 3. Webhookを発行してトランザクションのハッシュ値をDBに保存する
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
システムフロー 1. ユーザーがアカウント登録すると、ブロックチェーンでウォレットを作成する 2. ユーザーが取引を行うと、ブロックチェーンにトランザクションを送信する 3. Webhookを発行してトランザクションのハッシュ値をDBに保存する
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する ウォレットについて - ブロックチェーンにトランザクションを行うための公開鍵と秘密鍵のペアを生成及び管理 - ユーザーごとにウォレットを作成し、アプリではウォレットアドレスを管理 - ウォレットアドレスはトランザクションを送信する際に必要
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する Cognito × Lambda トリガー 1. サインアップをトリガーにLambdaが起動 2. Lambda内でユーザーごとにウォレットを 作成 3. 取得したウォレットアドレスをDynamoDB に保存
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する Cognito × Lambda トリガー 1. サインアップをトリガーにLambdaが起動 2. Lambda内でユーザーごとにウォレットを 作成 3. 取得したウォレットアドレスをDynamoDB に保存 amplify update auth > Walkthrough all the auth configurationsで設定
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する Cognito × Lambda トリガー 1. サインアップをトリガーにLambdaが起動 2. Lambda内でユーザーごとにウォレットを 作成 3. 取得したウォレットアドレスをDynamoDB に保存
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する Parameter Store 1. サインアップをトリガーにLambdaが起動 2. Lambda内でユーザーごとにウォレットを作 成 3. 取得したウォレットアドレスをDynamoDBに 保存 amplify add function or update function時に設定
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーがアカウント登録すると、ブロックチェーンで ウォレットを作成する Cognito × Lambda トリガー 1. サインアップをトリガーにLambdaが起動 2. Lambda内でユーザーごとにウォレットを 作成 3. 取得したウォレットアドレスをDynamoDB に保存
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
システムフロー 1. ユーザーがアカウント登録すると、ブロックチェーンでウォレットを作成する 2. ユーザーが取引を行うと、ブロックチェーンにトランザクションを送信する 3. Webhookを発行してトランザクションのハッシュ値をDBに保存する
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーが取引を行うと、ブロックチェーンにトランザク ションを作成する DynamoDB × Lambda トリガー 1. DynamoDBの取引テーブルにレコードを 作成 2. DynamoDB StreamをトリガーにLambdaが 起動 3. ブロックチェーンに対してトランザクション を送信
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーが取引を行うと、ブロックチェーンにトランザク ションを作成する DynamoDB × Lambda トリガー 1. DynamoDBのトランザクションテーブルに レコードを作成 2. DynamoDB StreamをトリガーにLambdaが 起動 3. ブロックチェーンに対してトランザクション を送信
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーが取引を行うと、ブロックチェーンにトランザク ションを作成する DynamoDB × Lambda トリガー 1. DynamoDBのトランザクションテーブルに レコードを作成 2. DynamoDB StreamをトリガーにLambda が起動 3. ブロックチェーンに対してトランザクション を送信 amplify add functionから設定
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ユーザーが取引を行うと、ブロックチェーンにトランザク ションを作成する DynamoDB × Lambda トリガー 1. DynamoDBのトランザクションテーブルに レコードを作成 2. DynamoDB StreamをトリガーにLambdaが 起動 3. Lambda内でブロックチェーンに対してト ランザクションを送信
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
システムフロー 1. ユーザーがアカウント登録すると、ブロックチェーンでウォレットを作成する 2. ユーザーが取引を行うと、ブロックチェーンにトランザクションを送信する 3. Webhookを発行してトランザクションのハッシュ値をDBに保存する
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
Webhookを発行してトランザクションのハッシュ値をDB に保存する API Gateway × Lambda 1. トランザクションの作成をトリガーに Webhookを発行して、API Gatewayのエン ドポイントにリクエスト 2. 起動したLambda内でDynamoDBの取引 テーブルにブロックチェーンのハッシュ値 を登録
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
Webhookを発行してトランザクションのハッシュ値をDB に保存する API Gateway × Lambda 1. トランザクションの作成をトリガーに Webhookを発行して、API Gatewayのエ ンドポイントにリクエスト 2. 起動したLambda内でDynamoDBの取引 テーブルにブロックチェーンのハッシュ値 を登録 amplify CLIからAPI Gatewayを作成すると、aws-exports.js にエン ドポイントなどの情報が格納される
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
API Gateway × Lambda 1. トランザクションの作成をトリガーに Webhookを発行して、API Gatewayの エンドポイントにリクエスト 2. 起動したLambda内でDynamoDBの取 引テーブルにブロックチェーンのハッ シュ値を登録 Webhookを発行してトランザクションのハッシュ値 をDBに保存する
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
まとめ - ブロックチェーンの要件に対してAmplifyは柔軟に対応できた - 特にLambdaトリガーを活用すると対応できる - 少人数でかつ短期間での実装が実現できた
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
最後に ピュアポムメディアラボではAmplifyを使ったMVP開発の研究を行っています。 さらに高速開発をどうすればいいのか、工夫しながらやっています。 一緒に研究してくれる方を募集中です。
[email protected]
Copyright © 2023 Purpom Media Lab Inc. All Rights Reserved.
ご清聴ありがとうご ざいました