【发布时间】:2021-05-15 11:08:36
【问题描述】:
我已经在 nodejs 中构建了一个简单的 BlockChain。在钱包类中,我可以减去余额,但不能添加。这是 Wallet 类:
class Wallet {
constructor(){
const keyPair = crypto.generateKeyPairSync('rsa',{
modulusLength: 2048,
publicKeyEncoding: {type: 'spki', format: 'pem'},
privateKeyEncoding: {type: 'pkcs8', format: 'pem'}
});
this.privateKey = keyPair.privateKey;
this.publicKey = {key: keyPair.publicKey, balance: 0}
}
sendMoney(amount,receiverPublicKey,senderPrivateKey){
const transaction = new Transaction(this.publicKey.key,receiverPublicKey,amount);
const sign = crypto.createSign("SHA256");
sign.update(transaction.toString()).end();
const signature = sign.sign(this.privateKey);
Bitcoin.addBlock(transaction,this.publicKey.key,signature);
if(senderPrivateKey === this.privateKey && receiverPublicKey !== this.publicKey.key){
this.publicKey.balance -= amount;
}else if(receiverPublicKey === this.publicKey.key && senderPrivateKey !== this.privateKey){
this.publicKey.balance += amount;
}
}
}
这是我发起交易的方式:
const satoshi = new Wallet();
const bob = new Wallet();
satoshi.publicKey.balance = 500;
satoshi.sendMoney(400,bob.publicKey.key,satoshi.privateKey);
我怎样才能将金额添加到余额中?
【问题讨论】:
标签: javascript node.js blockchain bitcoin cryptocurrency