質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Blockchain

Blockchain(ブロックチェーン)とは、分散型台帳技術もしくは分散型ネットワークのことを指します。クラウド上のデータを分散し、ノード間でデータの相違があった際には他ノードの合意によって信頼性が高いデータを判断。データの確保および信憑性を保持する技術です。

Solidity

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

3回答

758閲覧

スマートコントラクトを導入したアプリケーション開発の手順

asasaas

総合スコア26

Blockchain

Blockchain(ブロックチェーン)とは、分散型台帳技術もしくは分散型ネットワークのことを指します。クラウド上のデータを分散し、ノード間でデータの相違があった際には他ノードの合意によって信頼性が高いデータを判断。データの確保および信憑性を保持する技術です。

Solidity

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2019/08/15 06:46

前提・実現したいこと

スマートコントラクトを導入したアプリケーション開発について質問です。
知識不足のため的外れな表現や解釈があればご指摘お願いします。
現在、Webベースダイナミックマップを用いたアプリケーションにスマートコントラクを導入したいと考えています。

既存のアプリケーションの概要

ダイナミックマップを利用して自動運転車の道路予約を行う。
時空間の管理にはMongoDBを用いる。
予約のために、/grid/reserveのAPIを利用しPOSTメソッドにて必要な情報をサーバに送ることで予約を行う

追加したい機能

予約の際に金銭が発生する(時空間を仮想通貨で購入する)。
予約内容をコントラクトに書き込み、予約が完了したら送金が行われる。

質問したいこと

行うべきことの手順
より簡単に同じようなことを実現する方法

どう手を付けて良いのかが全く検討が付いていません。

構成としては、バックエンドサーバーとDBに、ブロックチェーンノードを別に追加するといったようなものだと考えています。

大学の研究のため、とりあえず動かせれば良いといった感じです。
既存アプリケーションにブロックチェーンを導入する流れについて少しでも教えていただけると嬉しいです。

試したこと

web3.jsというものを使う?
Techpitにてフロントがreactのアプリケーションを勉強したのですが、web3.jsをどこに入れればいいのかなどイマイチ分かっていない。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2019/08/15 10:16

WebアプリケーションとDAppsの開発経験はあるのでしょうか?
asasaas

2019/08/15 10:56

ほとんどないです。
nskydiving

2019/08/15 11:12

その Techpit の内容が正に「スマートコントラクトを導入したアプリケーション開発の手順」なのではないでしょうか? その教材を学べば分かるような気がしますが、どこが分からないのでしょうか?
asasaas

2019/08/15 14:54

フロントがreactなら分かるのですが、違う場合にどこにweb3.jsを置くかなどの基礎的な知識がなく、何から学べば良いのかも分からない状態です。
guest

回答3

0

ベストアンサー

web3.jsというものを使う?

Javascript から Ethereum に接続するなら web3.js で良いと思います。

Techpitにてフロントがreactのアプリケーションを勉強したのですが、web3.jsをどこに入れればいいのかなどイマイチ分かっていない。

自分が分かりやすい場所ならどこでも良いと思います。


どこから手をつけて良いか分からないときは、まず細分化して一つずつ完成させていきましょう。

今回作るアプリケーションの場合、大きく以下の 5 つに分けることができると思います。

  • バックエンド(Ruby on Rails、Laravel など)
  • フロントエンド(React、Vue.js など)
  • Ethereum
  • MongoDB
  • ダイナミックマップ

これらを一つずつ学習していき、最終的に合わせて一つのアプリケーションを作るという流れでやっていけば良いんじゃないでしょうか。

投稿2019/08/16 02:27

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Webに不慣れなら、最初はWebをUIとして使わないアプリケーションを作ってみてはどうでしょうか。
巷の情報量からいくと、難易度はWebUIを作ることよりも、その契約アプリケーション(契約情報の保存+送金の実施?)の方が難しいという気がします。

例えば、以下のような進め方はどうでしょうか。


1 コマンドラインUIで動くアプリケーションを作る

コマンドラインから

  • contract_app <契約を作成せよ> <場所>
  • contract_app <契約リストを表示せよ> <場所>
  • contract_app <契約リストを表示せよ> <人>

などを実行すると、契約が作成されたり、情報が表示されたりするようなアプリケーションを作ります。

2 上記をWebアプリケーションにする

地図や会員登録・ログイン機能などを作って、上記の動作をWebから行えるようにする


1ができてしまえば、2を作れる人は世の中にたくさんいますし、情報も溢れているので、
まずは1を作ることを注力すると良いのかな、と思いました。

投稿2019/08/15 08:35

編集2019/08/15 08:37
mokemokechicken

総合スコア948

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asasaas

2019/08/15 10:55

回答ありがとうございます。既存のアプリケーションとの連携を前提とされているので、厳しいかもしれません。一度検討してみます。
mokemokechicken

2019/08/15 11:28

あ、なるほど。確かにそう書いてありますね。 つまり主に作る必要があるのは「1」というわけですね。 「1」を作成し、その後ライブラリ化し、それをWebAPIで呼び出せるようにすれば良いという感じですね。 既存アプリとのInterfaceを設計して、全体が動くことをイメージしてから、「1」を作ると良いと思います(難しいことを言っているかもしれないですが、それを誰かがやらないと2つの仕組みが繋がらないです)。
guest

0

日経ソフトウエア 2018年5月号 No.257

たしかイーサリアム/スマートコントラクトの話が乗っていたはずです。
一度読むとなにかつかめるかも。

投稿2019/08/16 12:32

oikashinoa

総合スコア2826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問