SYMBOL INDEX (45 symbols across 5 files) FILE: Block.js class Block (line 1) | class Block { method constructor (line 2) | constructor (index, previousHash, timestamp, data, hash, nonce) { method genesis (line 11) | static get genesis() { FILE: Blockchain.js class Blockchain (line 4) | class Blockchain { method constructor (line 5) | constructor() { method get (line 10) | get() { method latestBlock (line 14) | get latestBlock() { method isValidHashDifficulty (line 18) | isValidHashDifficulty(hash) { method calculateHashForBlock (line 27) | calculateHashForBlock(block) { method calculateHash (line 38) | calculateHash(index, previousHash, timestamp, data, nonce) { method mine (line 45) | mine(data) { method generateNextBlock (line 54) | generateNextBlock(data) { method addBlock (line 91) | addBlock(newBlock) { method isValidNextBlock (line 99) | isValidNextBlock(nextBlock, previousBlock) { method isValidChain (line 115) | isValidChain(chain) { method isChainLonger (line 131) | isChainLonger(chain) { method replaceChain (line 135) | replaceChain(newChain) { FILE: Messages.js class Messages (line 11) | class Messages { method getLatestBlock (line 12) | static getLatestBlock() { method sendLatestBlock (line 18) | static sendLatestBlock(block) { method getBlockchain (line 25) | static getBlockchain() { method sendBlockchain (line 31) | static sendBlockchain(blockchain) { FILE: P2p.js class PeerToPeer (line 16) | class PeerToPeer { method constructor (line 17) | constructor(blockchain) { method startServer (line 22) | startServer(port) { method discoverPeers (line 36) | discoverPeers() { method connectToPeer (line 46) | connectToPeer(host, port) { method closeConnection (line 58) | closeConnection() { method broadcastLatest (line 64) | broadcastLatest() { method broadcast (line 68) | broadcast(message) { method write (line 72) | write(peer, message) { method initConnection (line 76) | initConnection(connection) { method initMessageHandler (line 83) | initMessageHandler(connection) { method initErrorHandler (line 90) | initErrorHandler(connection) { method handleMessage (line 96) | handleMessage(peer, message) { method handleReceivedLatestBlock (line 115) | handleReceivedLatestBlock(message, peer) { method handleReceivedBlockchain (line 132) | handleReceivedBlockchain(message) { FILE: cli.js function cli (line 7) | function cli(vorpal) { function welcome (line 23) | function welcome(vorpal) { function connectCommand (line 28) | function connectCommand(vorpal) { function discoverCommand (line 44) | function discoverCommand(vorpal) { function blockchainCommand (line 58) | function blockchainCommand(vorpal) { function peersCommand (line 68) | function peersCommand(vorpal) { function mineCommand (line 80) | function mineCommand(vorpal) { function openCommand (line 93) | function openCommand(vorpal) {