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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1380閲覧

node.jsを用いたブロックチェーンの構築と運用

mukudori

総合スコア11

Blockchain

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

0クリップ

投稿2019/02/27 15:27

この度、ブロックチェーンに興味を持ち勉強してみたいと思いました。
そこでネット上でサンプルを見つけ動かしてみようと思ったのですが、
うまくいかず・・。
アレンジしたもののうまく動きません。

動いてる場所
(1) nodeでhtmlを表示できる
(2) html上でボタンを押すとjsが起動する
(3) nodeとの通信は動いている以下のソースコードでの
console.log("LOAD2.");は動いている

動かない部分
上記の(3)は満たせるもののJsonファイルをhtmlに送信する事ができない。

getNewAddress.html

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>ビットコインアドレスを生成する</title> 6 7</head> 8<body> 9 10 <main> 11 <p id="privateKey">秘密鍵</p> 12 <p id="publicKey">公開鍵</p> 13 <p id="bitcoinAddress">ビットコインアドレス</p> 14 <button type="button" id="createAddressButton">アドレスを生成</button> 15 </main> 16 17 18 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> 19 <script> 20 $(document).ready(function() { 21 $('#createAddressButton').click(function() { 22 $.ajax({ 23 type: 'post', 24 url: 'http://localhost:8000/getNewAddress/', 25 dataType: 'json' 26 }).done(function(res) { 27 $('#privateKey').text('秘密鍵: ' + res.privateKey); 28 $('#publicKey').text('公開鍵: ' + res.publicKey); 29 $('#bitcoinAddress').text('ビットコインアドレス: ' + res.bitcoinAddress); 30 }).fail(function(res) { 31 alert('Error'); 32 }); 33 }); 34 }); 35 </script> 36 37 38 39 40 41</body> 42</html> 43

getNewAddress.js

1var http = require("http"); 2var port = process.env.PORT || 8000; 3var bitcore = require('bitcore-lib'); 4var router = require('router'); 5var finalhandler = require('finalhandler'); 6var bodyParser = require('body-parser'); 7 8 9var appRouter = router(); 10appRouter.get('/getNewAddress', function(req, res) { 11 12 console.log("LOAD2."); 13 // 秘密鍵の生成 14 var privateKey = new bitcore.PrivateKey(NETWORK_TYPE); 15 // 秘密鍵から公開鍵を生成 16 var publicKey = privateKey.toPublicKey(); 17 // 公開鍵からビットコインアドレスを生成 18 var bitcoinAddress = publicKey.toAddress(NETWORK_TYPE); 19 20 // レスポンス用のjsonを生成 21 var json = JSON.stringify({ 22 "privateKey": privateKey.toString(), 23 "publicKey": publicKey.toString(), 24 "bitcoinAddress": bitcoinAddress.toString() 25 }); 26 27 res.send(json); 28}); 29 30// ファイルモジュールを読み込む 31var fs = require('fs'); 32 33var server = http.createServer(function onRequest(req, res) { 34 35fs.readFile('./getNewAddress.html', 'utf-8' , doReard ); 36 37function doReard(err, data) { 38res.setHeader('Access-Control-Allow-Origin', '*'); 39res.setHeader('Access-Control-Request-Method', '*'); 40res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested- 41 42With, Content-Type, Accept"); 43res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET'); 44 45res.writeHead(200, {'Content-Type': 'text/html'}); 46 47res.write(data); 48res.end(); 49appRouter(req, res, finalhandler(req, res)); 50 51} 52 53}).listen(port); 54 55console.log("The server has been started."); 56

以上がソースとなります。
また、res.send(json);の部分に関しては
サンプルからコードを変更しており、
res.setHeader('Content-Type', 'Content-type: application/json');
res.end(json);
が元々のコードとなっております。

またこれらのプログラムは最終的に
heroku上で動作させようと考えています。
heroku上では簡単なプログラム等は動かす事が
できているのでhtmlとnodeにおける
このレスポンス関連の不具合を
どうにかしたいと考えているため
どなたかご教授お願い申し上げます。

bochan2👍を押しています

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

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

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

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

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

bochan2

2019/03/03 07:37

質問頂きありがとうございます! 全フォルダーの構成が分からないとデバッグできないので出来ればgithub等で全ソースを公開して頂けないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問