From 52f0120f3978a5e237004a4f197407804a8b683b Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Tue, 7 Jan 2014 18:12:37 -0300 Subject: [PATCH 01/11] get block in angular from node! --- app/controllers/blocks.js | 10 ++++------ app/controllers/index.js | 22 ++++++++++++++++++++++ app/models/Block.js | 2 +- app/views/includes/foot.jade | 1 + app/views/index.jade | 21 --------------------- config/routes.js | 2 +- public/js/app.js | 5 +++-- public/js/controllers/index.js | 9 +++++++-- public/js/services/index.js | 5 +++++ public/views/index.html | 7 ++++++- 10 files changed, 50 insertions(+), 34 deletions(-) create mode 100644 public/js/services/index.js diff --git a/app/controllers/blocks.js b/app/controllers/blocks.js index fdef665..39b508e 100644 --- a/app/controllers/blocks.js +++ b/app/controllers/blocks.js @@ -1,15 +1,13 @@ 'use strict'; - -var Block = require('../models/Block'); -//, _ = require('lodash'); - - - /** * Module dependencies. */ +var mongoose = require('mongoose'), + Block = mongoose.model('Block'); +//, _ = require('lodash'); + /** * Find block by hash ... diff --git a/app/controllers/index.js b/app/controllers/index.js index f71d55c..423b411 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -1,5 +1,27 @@ 'use strict'; +/** + * Module dependencies. + */ + +var mongoose = require('mongoose'), + Block = mongoose.model('Block'); + exports.render = function(req, res) { res.render('index'); }; + +/** + * List of blocks at HomePage + */ +exports.all = function(req, res) { + Block.find().limit(7).exec(function(err, blocks) { + if (err) { + res.render('error', { + status: 500 + }); + } else { + res.jsonp(blocks); + } + }); +}; diff --git a/app/models/Block.js b/app/models/Block.js index 53272b5..de89280 100644 --- a/app/models/Block.js +++ b/app/models/Block.js @@ -65,4 +65,4 @@ BlockSchema.statics.fromHash = function(hash, cb) { }).exec(cb); }; -module.exports = mongoose.model('Block', BlockSchema); +mongoose.model('Block', BlockSchema); diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade index f7cc3e6..e4c8706 100755 --- a/app/views/includes/foot.jade +++ b/app/views/includes/foot.jade @@ -24,6 +24,7 @@ script(type='text/javascript', src='/js/filters.js') //Application Services script(type='text/javascript', src='/js/services/global.js') +script(type='text/javascript', src='/js/services/index.js') //Application Controllers script(type='text/javascript', src='/js/controllers/index.js') diff --git a/app/views/index.jade b/app/views/index.jade index 7f33718..a74f173 100755 --- a/app/views/index.jade +++ b/app/views/index.jade @@ -2,24 +2,3 @@ extends layouts/default block content section.container(data-ng-view) - - section.container - p ˈmɪst(ə)ri/' - | noun - audio(src="https://ssl.gstatic.com/dictionary/static/sounds/de/0/mystery.mp3",preload="auto",data-dobid="aud",id="aud") - button(onclick="document.getElementById('aud').play()") Play - - ol - li - strong something that is difficult or impossible to understand or explain. - p "the mysteries of outer space" - | synonyms: puzzle, enigma, conundrum, riddle, secret, unsolved problem, problem, question, question mark, closed book; secrecy or obscurity. - p "much of her past is shrouded in mystery" - | synonyms: secrecy, darkness, obscurity, ambiguity, ambiguousness, uncertainty, impenetrability, vagueness, nebulousness; More - li - strong a person or thing whose identity or nature is puzzling or unknown. - p "‘He's a bit of a mystery,’ said Nina" - li - strong a novel, play, or film dealing with a puzzling crime, especially a murder. - p "the 1920s murder mystery, The Ghost Train" - | synonyms: thriller, detective story/novel, murder story; More diff --git a/config/routes.js b/config/routes.js index 7150af0..3da0264 100644 --- a/config/routes.js +++ b/config/routes.js @@ -5,12 +5,12 @@ module.exports = function(app) { //Home route var index = require('../app/controllers/index'); app.get('/', index.render); + app.get('/last_blocks', index.all); //Block routes var blocks = require('../app/controllers/blocks'); app.get('/block/:blockHash', blocks.show); - app.param('blockHash', blocks.block); diff --git a/public/js/app.js b/public/js/app.js index 77b64cb..afb98d4 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,5 +1,6 @@ 'use strict'; -angular.module('mystery', ['ngCookies', 'ngResource', 'ngRoute', 'ui.bootstrap', 'ui.route', 'mystery.system']); +angular.module('mystery', ['ngCookies', 'ngResource', 'ngRoute', 'ui.bootstrap', 'ui.route', 'mystery.system', 'mystery.index']); -angular.module('mystery.system', []); \ No newline at end of file +angular.module('mystery.system', []); +angular.module('mystery.index', []); diff --git a/public/js/controllers/index.js b/public/js/controllers/index.js index 4cb2b6f..bec0f0a 100755 --- a/public/js/controllers/index.js +++ b/public/js/controllers/index.js @@ -1,5 +1,10 @@ 'use strict'; -angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', function ($scope, Global) { +angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', 'Index', function ($scope, Global, Index) { $scope.global = Global; -}]); \ No newline at end of file + $scope.last_blocks = function() { + Index.query(function(blocks) { + $scope.blocks = blocks; + }); + }; +}]); diff --git a/public/js/services/index.js b/public/js/services/index.js new file mode 100644 index 0000000..f961642 --- /dev/null +++ b/public/js/services/index.js @@ -0,0 +1,5 @@ +'use strict'; + +angular.module('mystery.index').factory('Index', ['$resource', function($resource) { + return $resource('/last_blocks'); +}]); diff --git a/public/views/index.html b/public/views/index.html index b92fe02..d84010f 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -1,5 +1,10 @@ -
+
+
    +
  • + {{block.hash}} +
  • +
From c2bbdb294192160f060c6b97f42429bfe605b028 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Wed, 8 Jan 2014 09:17:41 -0300 Subject: [PATCH 02/11] For blocks info, we always use controller blocks. Index controller only render homepage --- app/controllers/blocks.js | 15 +++++++++++++++ app/controllers/index.js | 22 ---------------------- config/routes.js | 2 +- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/app/controllers/blocks.js b/app/controllers/blocks.js index 39b508e..f08016a 100644 --- a/app/controllers/blocks.js +++ b/app/controllers/blocks.js @@ -29,3 +29,18 @@ exports.show = function(req, res) { res.jsonp(req.block); }; +/** + * List of blocks at HomePage + */ +exports.last_blocks = function(req, res) { + Block.find().limit(7).exec(function(err, blocks) { + if (err) { + res.render('error', { + status: 500 + }); + } else { + res.jsonp(blocks); + } + }); +}; + diff --git a/app/controllers/index.js b/app/controllers/index.js index 423b411..f71d55c 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -1,27 +1,5 @@ 'use strict'; -/** - * Module dependencies. - */ - -var mongoose = require('mongoose'), - Block = mongoose.model('Block'); - exports.render = function(req, res) { res.render('index'); }; - -/** - * List of blocks at HomePage - */ -exports.all = function(req, res) { - Block.find().limit(7).exec(function(err, blocks) { - if (err) { - res.render('error', { - status: 500 - }); - } else { - res.jsonp(blocks); - } - }); -}; diff --git a/config/routes.js b/config/routes.js index 03378b6..4b37ad7 100644 --- a/config/routes.js +++ b/config/routes.js @@ -5,12 +5,12 @@ module.exports = function(app) { //Home route var index = require('../app/controllers/index'); app.get('/', index.render); - app.get('/last_blocks', index.all); //Block routes var blocks = require('../app/controllers/blocks'); app.get('/block/:blockHash', blocks.show); app.param('blockHash', blocks.block); + app.get('/last_blocks', blocks.last_blocks); var transactions = require('../app/controllers/transactions'); app.get('/tx/:txid', transactions.show); From 513d8d88c95faa6a34fea3d54b2de4a786c14bf8 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 8 Jan 2014 09:28:24 -0300 Subject: [PATCH 03/11] added new route /blocks --- config/routes.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/config/routes.js b/config/routes.js index 4b37ad7..26154c6 100644 --- a/config/routes.js +++ b/config/routes.js @@ -8,13 +8,14 @@ module.exports = function(app) { //Block routes var blocks = require('../app/controllers/blocks'); + app.get('/blocks', blocks.list); app.get('/block/:blockHash', blocks.show); app.param('blockHash', blocks.block); app.get('/last_blocks', blocks.last_blocks); var transactions = require('../app/controllers/transactions'); app.get('/tx/:txid', transactions.show); - + app.param('txid', transactions.transaction); - + }; From 1ec2984bab77a4247b91fee1ff6baa667d76e850 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Wed, 8 Jan 2014 09:32:38 -0300 Subject: [PATCH 04/11] Frontend: Blocks controller for angularjs --- app/views/includes/foot.jade | 2 ++ public/js/app.js | 3 ++- public/js/controllers/blocks.js | 8 ++++++++ public/js/services/blocks.js | 5 +++++ 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 public/js/controllers/blocks.js create mode 100644 public/js/services/blocks.js diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade index e4c8706..edca962 100755 --- a/app/views/includes/foot.jade +++ b/app/views/includes/foot.jade @@ -23,10 +23,12 @@ script(type='text/javascript', src='/js/directives.js') script(type='text/javascript', src='/js/filters.js') //Application Services +script(type='text/javascript', src='/js/services/blocks.js') script(type='text/javascript', src='/js/services/global.js') script(type='text/javascript', src='/js/services/index.js') //Application Controllers script(type='text/javascript', src='/js/controllers/index.js') script(type='text/javascript', src='/js/controllers/header.js') +script(type='text/javascript', src='/js/controllers/blocks.js') script(type='text/javascript', src='/js/init.js') diff --git a/public/js/app.js b/public/js/app.js index afb98d4..2b6bc68 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,6 +1,7 @@ 'use strict'; -angular.module('mystery', ['ngCookies', 'ngResource', 'ngRoute', 'ui.bootstrap', 'ui.route', 'mystery.system', 'mystery.index']); +angular.module('mystery', ['ngCookies', 'ngResource', 'ngRoute', 'ui.bootstrap', 'ui.route', 'mystery.system', 'mystery.index', 'mystery.blocks']); angular.module('mystery.system', []); angular.module('mystery.index', []); +angular.module('mystery.blocks', []); diff --git a/public/js/controllers/blocks.js b/public/js/controllers/blocks.js new file mode 100644 index 0000000..032b593 --- /dev/null +++ b/public/js/controllers/blocks.js @@ -0,0 +1,8 @@ +'use strict'; + +angular.module('mystery.blocks').controller('BlocksController', ['$scope', '$routeParams', '$location', 'Global', 'Blocks', function ($scope, $routeParams, $location, Global, Blocks) { + $scope.global = Global; + + // for avoid warning. please remove when you use Blocks + $scope.blocks = Blocks; +}]); diff --git a/public/js/services/blocks.js b/public/js/services/blocks.js new file mode 100644 index 0000000..e60ded2 --- /dev/null +++ b/public/js/services/blocks.js @@ -0,0 +1,5 @@ +'use strict'; + +angular.module('mystery.blocks').factory('Blocks', ['$resource', function($resource) { + return $resource; +}]); From 6aa680ef08689f7d8ba81aebf6b42f6cde92af8b Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Wed, 8 Jan 2014 09:47:12 -0300 Subject: [PATCH 05/11] adds heights to block --- app/models/Block.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/Block.js b/app/models/Block.js index 3ce94ef..db88ed4 100644 --- a/app/models/Block.js +++ b/app/models/Block.js @@ -19,6 +19,7 @@ var BlockSchema = new Schema({ unique: true, }, size: Number, + height: Number, confirmations: Number, version: Number, merkleroot: String, From 92054210a806b6efd996b58d2e21996a6f1e0867 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Wed, 8 Jan 2014 11:05:19 -0300 Subject: [PATCH 06/11] block page draft --- app/controllers/blocks.js | 2 +- app/models/Block.js | 2 +- public/js/config.js | 3 +++ public/js/controllers/blocks.js | 8 ++++++++ public/js/controllers/header.js | 7 ++----- public/js/services/blocks.js | 4 +++- public/views/block.html | 23 +++++++++++++++++++++++ public/views/header.html | 8 ++++---- public/views/index.html | 23 ++++++++++++++++++----- 9 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 public/views/block.html diff --git a/app/controllers/blocks.js b/app/controllers/blocks.js index f08016a..0407c75 100644 --- a/app/controllers/blocks.js +++ b/app/controllers/blocks.js @@ -33,7 +33,7 @@ exports.show = function(req, res) { * List of blocks at HomePage */ exports.last_blocks = function(req, res) { - Block.find().limit(7).exec(function(err, blocks) { + Block.find().sort({time:-1}).limit(7).exec(function(err, blocks) { if (err) { res.render('error', { status: 500 diff --git a/app/models/Block.js b/app/models/Block.js index af173dc..ee68b94 100644 --- a/app/models/Block.js +++ b/app/models/Block.js @@ -94,4 +94,4 @@ BlockSchema.statics.fromHash = function(hash, cb) { }).exec(cb); }; -mongoose.model('Block', BlockSchema); +module.exports = mongoose.model('Block', BlockSchema); diff --git a/public/js/config.js b/public/js/config.js index fe68006..1e36afd 100755 --- a/public/js/config.js +++ b/public/js/config.js @@ -4,6 +4,9 @@ angular.module('mystery').config(['$routeProvider', function($routeProvider) { $routeProvider. + when('/block/:blockHash', { + templateUrl: 'views/block.html' + }). when('/', { templateUrl: 'views/index.html' }). diff --git a/public/js/controllers/blocks.js b/public/js/controllers/blocks.js index 032b593..13b6bfd 100644 --- a/public/js/controllers/blocks.js +++ b/public/js/controllers/blocks.js @@ -3,6 +3,14 @@ angular.module('mystery.blocks').controller('BlocksController', ['$scope', '$routeParams', '$location', 'Global', 'Blocks', function ($scope, $routeParams, $location, Global, Blocks) { $scope.global = Global; + $scope.findOne = function() { + Blocks.get({ + blockHash: $routeParams.blockHash + }, function(block) { + $scope.block = block; + }); + }; + // for avoid warning. please remove when you use Blocks $scope.blocks = Blocks; }]); diff --git a/public/js/controllers/header.js b/public/js/controllers/header.js index 039a5ac..8dddc14 100755 --- a/public/js/controllers/header.js +++ b/public/js/controllers/header.js @@ -4,11 +4,8 @@ angular.module('mystery.system').controller('HeaderController', ['$scope', 'Glob $scope.global = Global; $scope.menu = [{ - 'title': 'Articles', - 'link': 'articles' - }, { - 'title': 'Create New Article', - 'link': 'articles/create' + 'title': 'Blocks', + 'link': 'blocks' }]; $scope.isCollapsed = false; diff --git a/public/js/services/blocks.js b/public/js/services/blocks.js index e60ded2..fe5cf40 100644 --- a/public/js/services/blocks.js +++ b/public/js/services/blocks.js @@ -1,5 +1,7 @@ 'use strict'; angular.module('mystery.blocks').factory('Blocks', ['$resource', function($resource) { - return $resource; + return $resource('block/:blockHash', { + blockHash: '@blockHash' + }); }]); diff --git a/public/views/block.html b/public/views/block.html new file mode 100644 index 0000000..686a6ad --- /dev/null +++ b/public/views/block.html @@ -0,0 +1,23 @@ +
+ + + + + + + + + + + + + + + + + + +
HeightAgeTransactionsConfirmationsSize (kB)
{{block.height}}{{block.time | date:'short'}}{{block.tx.length }}{{block.confirmations}}{{block.size / 1024}}
+
\ No newline at end of file diff --git a/public/views/header.html b/public/views/header.html index 70189e7..fb034ed 100755 --- a/public/views/header.html +++ b/public/views/header.html @@ -6,13 +6,13 @@ - Mystery + Mystery diff --git a/public/views/index.html b/public/views/index.html index d84010f..953dc31 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -2,9 +2,22 @@ -
    -
  • - {{block.hash}} -
  • -
+ + + + + + + + + + + + + + + + + +
HeightAgeTransactionsConfirmationsSize (kB)
{{block.height}}{{block.time | date:'short'}}{{block.tx.length }}{{block.confirmations}}{{block.size / 1024}}
From ac261d42c6f7b8821f88bc74e8193bc937cf31c7 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 8 Jan 2014 11:55:06 -0300 Subject: [PATCH 07/11] Added new Angular views for block list --- public/views/blocks/list.html | 10 ++++++++++ public/views/blocks/list_date.html | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 public/views/blocks/list.html create mode 100644 public/views/blocks/list_date.html diff --git a/public/views/blocks/list.html b/public/views/blocks/list.html new file mode 100644 index 0000000..f258705 --- /dev/null +++ b/public/views/blocks/list.html @@ -0,0 +1,10 @@ +
+ +
    +
  • + {{block.hash}} {{block.time}} +
  • +
+
\ No newline at end of file diff --git a/public/views/blocks/list_date.html b/public/views/blocks/list_date.html new file mode 100644 index 0000000..349857c --- /dev/null +++ b/public/views/blocks/list_date.html @@ -0,0 +1,10 @@ +
+ +
    +
  • + {{block.hash}} {{block.time}} +
  • +
+
From f6d870bb5e55c246fe1d646167ffc877fcbe9fbb Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 8 Jan 2014 11:55:24 -0300 Subject: [PATCH 08/11] added new route --- config/routes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.js b/config/routes.js index 26154c6..5a3e80f 100644 --- a/config/routes.js +++ b/config/routes.js @@ -8,7 +8,7 @@ module.exports = function(app) { //Block routes var blocks = require('../app/controllers/blocks'); - app.get('/blocks', blocks.list); + app.get('/api/blocks', blocks.list); app.get('/block/:blockHash', blocks.show); app.param('blockHash', blocks.block); app.get('/last_blocks', blocks.last_blocks); From c967df577eecc109e1736d9545e3248dd8322a5b Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 8 Jan 2014 11:56:36 -0300 Subject: [PATCH 09/11] added new blocklist page --- app/controllers/blocks.js | 25 ++++++++++++++++++++++++- public/js/config.js | 6 ++++++ public/js/controllers/blocks.js | 16 +++++++++++++++- public/js/services/blocks.js | 2 +- 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/app/controllers/blocks.js b/app/controllers/blocks.js index f08016a..2904efd 100644 --- a/app/controllers/blocks.js +++ b/app/controllers/blocks.js @@ -23,7 +23,7 @@ exports.block = function(req, res, next, hash) { /** - * Show block + * Show block */ exports.show = function(req, res) { res.jsonp(req.block); @@ -44,3 +44,26 @@ exports.last_blocks = function(req, res) { }); }; +/** + * List of blocks by date + */ +exports.list = function(req, res) { + var findParam = {}; + + if (req.query.blockDate) { + findParam = {}; + } + + Block + .find(findParam) + .limit(5) + .exec(function(err, blocks) { + if (err) { + res.render('error', { + status: 500 + }); + } else { + res.jsonp(blocks); + } + }); +}; diff --git a/public/js/config.js b/public/js/config.js index fe68006..c4b7d3e 100755 --- a/public/js/config.js +++ b/public/js/config.js @@ -7,6 +7,12 @@ angular.module('mystery').config(['$routeProvider', when('/', { templateUrl: 'views/index.html' }). + when('/blocks', { + templateUrl: 'views/blocks/list.html' + }). + when('/blocks-date/:blockDate', { + templateUrl: 'views/blocks/list_date.html' + }). otherwise({ redirectTo: '/' }); diff --git a/public/js/controllers/blocks.js b/public/js/controllers/blocks.js index 032b593..2b708cb 100644 --- a/public/js/controllers/blocks.js +++ b/public/js/controllers/blocks.js @@ -2,7 +2,21 @@ angular.module('mystery.blocks').controller('BlocksController', ['$scope', '$routeParams', '$location', 'Global', 'Blocks', function ($scope, $routeParams, $location, Global, Blocks) { $scope.global = Global; - + + $scope.list_blocks = function() { + Blocks.query(function(blocks) { + $scope.blocks = blocks; + }); + }; + + $scope.list_blocks_date = function() { + Blocks.query({ + blockDate: $routeParams.blockDate + }, function(blocks) { + $scope.blocks = blocks; + }); + }; + // for avoid warning. please remove when you use Blocks $scope.blocks = Blocks; }]); diff --git a/public/js/services/blocks.js b/public/js/services/blocks.js index e60ded2..6c827a6 100644 --- a/public/js/services/blocks.js +++ b/public/js/services/blocks.js @@ -1,5 +1,5 @@ 'use strict'; angular.module('mystery.blocks').factory('Blocks', ['$resource', function($resource) { - return $resource; + return $resource('/api/blocks'); }]); From 19636a5ffb1cc6e6dbd3447f7ada6f611f251950 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Wed, 8 Jan 2014 13:13:50 -0300 Subject: [PATCH 10/11] fix url for block info --- config/routes.js | 2 +- public/js/services/blocks.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/routes.js b/config/routes.js index 5a3e80f..ab4c9b1 100644 --- a/config/routes.js +++ b/config/routes.js @@ -9,7 +9,7 @@ module.exports = function(app) { //Block routes var blocks = require('../app/controllers/blocks'); app.get('/api/blocks', blocks.list); - app.get('/block/:blockHash', blocks.show); + app.get('/api/block/:blockHash', blocks.show); app.param('blockHash', blocks.block); app.get('/last_blocks', blocks.last_blocks); diff --git a/public/js/services/blocks.js b/public/js/services/blocks.js index 69185f1..7747ff3 100644 --- a/public/js/services/blocks.js +++ b/public/js/services/blocks.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('mystery.blocks').factory('Block', ['$resource', function($resource) { - return $resource('block/:blockHash', { + return $resource('/api/block/:blockHash', { blockHash: '@blockHash' }); }]); From 8fc7001e8e662a9d7eb6cd85a838eee7f758fb7d Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Wed, 8 Jan 2014 13:29:54 -0300 Subject: [PATCH 11/11] fix API doc --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c986815..ca751e3 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,6 @@ $ npm install -g bower -## API ## Prerequisites Get bitcore from github repository: @@ -62,21 +61,23 @@ $ npm install -g bower check utils/sync.js --help for options. +## API + +A REST API is provided at /api. The entry points are: + ### Blocks ``` - /block/[:hash] - /block/00000000a967199a2fad0877433c93df785a8d8ce062e5f9b451cd1397bdbf62 + /api/block/[:hash] + /api/block/00000000a967199a2fad0877433c93df785a8d8ce062e5f9b451cd1397bdbf62 ``` ### Transactions ``` - /tx/[:txid] - /tx/525de308971eabd941b139f46c7198b5af9479325c2395db7f2fb5ae8562556c + /api/tx/[:txid] + /api/tx/525de308971eabd941b139f46c7198b5af9479325c2395db7f2fb5ae8562556c ``` - - ## Troubleshooting If you did not get all library during grunt command, please use the follow command: