.form-group .col-sm-2 i.icon-spinner.icon-spin.icon-large .col-sm button.btn.btn-primary.ladda-button(id='block'+block.block+'chain'+block.chain+'mineButton', data-style='expand-right') span.ladda-label Mine

      button.btn.btn-primary.ladda-button(id='block'+block.block+'chain'+block.chain+'Re_Sign', 
      data-style='expand-right',type='button',onclick='Re_Sign('+block.block+','+block.chain+','+block.txCount+');')
        span.ladda-label Re_Sign 

function Re_Sign(block, chain, txCount){
var prvKey; var privateKey = Cookies.get('privateKey'); if(privateKey){ prvKey=ec.keyFromPrivate(Cookies.get('privateKey')); } for(var i=0;i<txCount;i++) { var message = $('#block'+block+'chain'+chain+'tx'+i+'value').val() + $('#block'+block+'chain'+chain+'tx'+i+'from').val() + $('#block'+block+'chain'+chain+'tx'+i+'to').val() + $('#block'+block+'chain'+chain+'tx'+i+'seq').val(); var binaryMessage = buffer.Buffer.from(CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex)); var hexSignature = buffer.Buffer.from(prvKey.sign(binaryMessage).toDER()).toString('hex'); $('#block' + block + 'chain' + chain + 'tx' + i + 'sig').val(hexSignature); } setup(block, chain, txCount); }

区块链作业:修改区块内容并重新挖矿

这个简短教程将指导您完成一个简单的区块链操作:修改区块内容,使用私钥重新签名,并重新挖矿使区块变为绿色。

步骤:

  1. 在 Blockchain 页面,找到您要修改的区块。
    • 这个区块通常是第一行的最后一个区块。
  2. 修改区块的 'From' 字段。
    • 将 'From' 的内容替换为您的组号生成的公钥地址
    • 其它字段保持不变。
  3. 点击 'Re-Sign' 按钮重新签名。
    • 您会注意到 'Sig' 字段的内容变为黑色,这表示签名已更新。
  4. 点击 'Mine' 按钮重新挖矿。
    • 如果一切顺利,区块的颜色将变为绿色,表示区块已成功挖矿并添加到区块链中。

代码示例 (JavaScript):

以下代码演示了如何使用 JavaScript 修改区块内容并重新签名。

function Re_Sign(block, chain, txCount) {
  var prvKey;
  var privateKey = '17438465789284951830180423588170655994243680290202372931915516373087136933698';
  if (privateKey) {
    prvKey = ec.keyFromPrivate(privateKey);
  }
  for (var i = 0; i < txCount; i++) {
    var message = $('#block' + block + 'chain' + chain + 'tx' + i + 'value').val() +
      $('#block' + block + 'chain' + chain + 'tx' + i + 'from').val() +
      'YOUR_PUBLIC_KEY_ADDRESS' + // 将此处替换为您的组号的公钥地址
      $('#block' + block + 'chain' + chain + 'tx' + i + 'seq').val();
    var binaryMessage = buffer.Buffer.from(CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex));
    var hexSignature = buffer.Buffer.from(prvKey.sign(binaryMessage).toDER()).toString('hex');
    $('#block' + block + 'chain' + chain + 'tx' + i + 'sig').val(hexSignature);
  }
  setup(block, chain, txCount);
}

请记住:

  • 将代码中的 'YOUR_PUBLIC_KEY_ADDRESS' 替换为您的实际公钥地址。
  • 确保您已正确设置开发环境并连接到区块链网络。
  • 本教程仅供学习和演示目的,请勿在实际的区块链应用中使用提供的私钥。

通过完成此作业,您将对区块链的基本操作有更深入的了解,包括修改区块内容、使用私钥进行签名以及挖矿验证区块。

区块链实战:修改区块内容并重新签名挖矿

原文地址: https://www.cveoy.top/t/topic/fwUj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录