-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintro.js
More file actions
37 lines (27 loc) · 717 Bytes
/
intro.js
File metadata and controls
37 lines (27 loc) · 717 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const lightningHash = (data) => {
return data + '*';
};
class Block {
constructor(data, hash, lastHash) {
this.data = data;
this.hash = hash;
this.lastHash = lastHash;
}
}
class Blockchain {
constructor() {
const genesis = new Block('gen-data', 'gen-hash', 'gen-lastHash');
this.chain = [genesis];
}
addBlock(data) {
const lastHash = this.chain[this.chain.length - 1].hash;
const hash = lightningHash(data + lastHash);
const block = new Block(data, hash, lastHash);
this.chain.push(block);
}
}
const fooBlockchain = new Blockchain();
fooBlockchain.addBlock('one');
fooBlockchain.addBlock('two');
fooBlockchain.addBlock('three');
console.log(fooBlockchain);