创客互助公排开发功能丨创客互助公排系统开发技术详细丨创客互助公排系统源码案例模式

简介:  区块头和区块体数据也会被当作输入数据做一次Hash运算,其运算结果会被存储在下一个区块的区块头中,这样任何区块内容的修改都会反映到区块的Hash值上,而区块的Hash值又是下一个区块的输入数据,它又会被当作新区块的数据参与一次新区块的Hash运算,随着时间的推移和交易量的增加,所有的区块会通过保存前一个区块的Hash运算结果的方式组成一条链。

  区块头和区块体数据也会被当作输入数据做一次Hash运算,其运算结果会被存储在下一个区块的区块头中,这样任何区块内容的修改都会反映到区块的Hash值上,而区块的Hash值又是下一个区块的输入数据,它又会被当作新区块的数据参与一次新区块的Hash运算,随着时间的推移和交易量的增加,所有的区块会通过保存前一个区块的Hash运算结果的方式组成一条链。

  ==将交易打包成数据块,再将数据块以Hash值的方式组织成链式结构,这就是区块链定义的来源。==由分布在全世界的节点组成,任何人都可以公开查询,但又无法任意修改。

  合约交互代码:

  //SPDX-License-Identifier:MIT

  pragma solidity=0.8.4;

  contract Test{

  uint256 private value;

  function setValue(uint256 _value)public{

  value=_value;

  }

  function getValue()public view returns(uint256){

  return value;

  }

  }

  使用web3.js与合约交互

  再有就是通过web3.js的库进行交互

  var fs=require('fs');

  var Web3=require('web3');

  const infuraKey=fs.readFileSync("../.infuraKey").toString().trim();

  var ethRpcUrl=https://rinkeby.infura.io/v3/+infuraKey

  var web3=new Web3(ethRpcUrl);

  abi=[

  {

  "name":"getValue",

  "outputs":[

  {

  "internalType":"uint256",

  "name":"",

  "type":"uint256"

  }

  ],

  "stateMutability":"view",

  "type":"function"

  },

  {

  "inputs":[

  {

  "internalType":"uint256",

  "name":"_value",

  "type":"uint256"

  }

  ],

  "name":"setValue",

  "outputs":[],

  "stateMutability":"nonpayable",

  "type":"function"

  }

  ]

  address="合约地址"

  pk="钱包私钥"

  main()

  .then(()=>process.exit(0))

  .catch(error=>{

  console.error(error);

  process.exit(1);

  });

  async function getValue(){

  var contract=new web3.eth.Contract(abi,address);

  var value=await contract.methods.getValue().call();

  console.log(value);

  }

  async function setValue(){

  value=123

  var contract=new web3.eth.Contract(abi,address);

  var encodeABI=await contract.methods.setValue(value).encodeABI();

  var signResult=await web3.eth.accounts.signTransaction({

  gas:3000000,

  to:address,

  data:encodeABI

  },pk);

  console.log(signResult);

  var result=await web3.eth.sendSignedTransaction(signResult.rawTransaction);

  console.log(result);

  }

  async function main(){

  await setValue();

  await getValue();

  }

目录
打赏
0
0
0
0
36
分享
相关文章
kde
|
17天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
10062 80
Windows安装Claude Code
Claude Code 是 Anthropic 推出的代码助手,支持在 Windows 通过 WSL(Windows Subsystem for Linux)运行。本文介绍如何在 Windows 系统中启用 WSL、安装 Ubuntu 子系统、配置 Python 与 Node.js 环境,并最终安装和运行 Claude Code。内容涵盖 WSL 设置、开发工具安装、依赖配置及常见问题解决方法,助你顺利在本地环境中使用 Claude Code 提升编码效率。
677 2
Windows安装Claude Code
Dify MCP 保姆级教程来了!
大语言模型,例如 DeepSeek,如果不能联网、不能操作外部工具,只能是聊天机器人。除了聊天没什么可做的。
2366 34
让复杂 AI 应用构建就像搭积木:Spring AI Alibaba Graph 使用指南与源码解读
通过指南和完整的示例项目,你可以快速掌握 Spring AI Alibaba Graph 的使用方法,并在实际项目中高效地构建智能化应用。
487 21
淘天AB实验分析平台Fluss落地实践:更适合实时OLAP的消息队列
淘天集团数据开发团队基于Fluss构建新一代实时数仓,解决数据消费冗余、探查困难及大State运维难题。Fluss融合列存与实时更新能力,支持列裁剪、KV点查、Delta Join及湖流一体,显著降低IO与计算资源消耗,提升作业稳定性与数据探查效率。已在淘天AB实验平台落地,覆盖搜索、推荐等核心业务,通过618大促验证,实现千万级流量、秒级延迟,资源消耗降低30%,State缩减超100TB。未来将持续深化湖仓架构,拓展AI场景应用。
343 1
淘天AB实验分析平台Fluss落地实践:更适合实时OLAP的消息队列
【保姆级图文详解】大模型、Spring AI编程调用大模型
【保姆级图文详解】大模型、Spring AI编程调用大模型
937 12
【保姆级图文详解】大模型、Spring AI编程调用大模型
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问