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 fdef6655..39b508e0 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 f71d55c5..423b411e 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 53272b52..de89280d 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 f7cc3e62..e4c87067 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 7f337180..a74f1733 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 7150af08..3da02649 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 77b64cba..afb98d4e 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 4cb2b6fd..bec0f0ad 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 00000000..f961642e --- /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 b92fe022..d84010fb 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 39b508e0..f08016a2 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 423b411e..f71d55c5 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 03378b6f..4b37ad7f 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 4b37ad7f..26154c60 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 e4c87067..edca962e 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 afb98d4e..2b6bc682 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 00000000..032b5932 --- /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 00000000..e60ded2b --- /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 3ce94ef0..db88ed4c 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 f08016a2..0407c752 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 af173dcb..ee68b94d 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 fe680064..1e36afda 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 032b5932..13b6bfda 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 039a5ac2..8dddc143 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 e60ded2b..fe5cf406 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 00000000..686a6ade --- /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 70189e79..fb034edb 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 d84010fb..953dc31b 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 00000000..f258705a --- /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 00000000..349857cf --- /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 26154c60..5a3e80f6 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 f08016a2..2904efd4 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 fe680064..c4b7d3eb 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 032b5932..2b708cb5 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 e60ded2b..6c827a6b 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 5a3e80f6..ab4c9b18 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 69185f1e..7747ff32 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 c9868152..ca751e31 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: