- 博客(82)
- 资源 (5)
- 收藏
- 关注
原创 基于以太坊的智能合约开发教程Solidity 多重继承
基于以太坊的智能合约开发教程Solidity 多重继承pragma solidity ^0.4.0;contract testOne { uint money =100; uint height =188; function dance()public pure returns(string){ return "one dance"; }}contract testTwo { uint money =200;
2021-12-03 11:18:22
3728
原创 以太坊Dapp开发与metamask交互
以太坊Dapp开发与metamask交互在上一节当中我们通过truffle与合约实现了交互,接下来我们来使用一个metamask插件来模拟这个过程首先在浏览器当中点击附加组件,在搜索栏当中搜索MetaMask,并进行安装插件接下来启动我们的ganache-cli自动生成十个账户[root@ dapp]# ganache-cliGanache CLI v6.12.2 (ganache-core: 2.13.2)Available Accounts==================(0)
2021-12-02 11:23:04
6321
原创 以太坊Dapp开发通过truffle部署合约
以太坊Dapp开发通过truffle部署合约Truffle是一个非常流行 DApp 开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程下面来演示一下truffle是如何部署一个合约的前提工作:已安装truffle,granche-cli以及node等需要的依赖,可以参考我在以太坊Dapp这一分栏内的文章首先需要将我们的ganache启动[root@cfx ~]# ganache-cliGanache CLI v6.12.2 (gan
2021-11-30 14:54:29
9139
原创 解决Linux下truffle安装失败的问题
解决Linux下truffle安装失败的问题最近在学习以太坊Dapp方面的知识在安装truffle的时候碰到了麻烦前提:已经安装了node.js以及git一开始我的node是安装在root目录下的在这里我们需要把node文件移动到usr目录下的local当中命令:mv node /usr/local这里大家记住你移动了node,此时你需要改变你之前配置的环境变量使用vim etc/profile命令后面再进行安装时,发现安装过程当中容易卡死一直不动,后面指定版本安装解决了这个问题:n
2021-11-29 20:27:06
1428
原创 以太坊Dapp开发通过web3.js调用智能合约
在dapp目录下创建一个工程sixtest[root@ dapp]# express -e sixtest我们在remix当中部署好的智能合约pragma solidity ^0.4.22;contract counter{ uint256 counter; constructor() public{ counter = 1; } function getCounter()public view returns(uint256){
2021-11-27 19:05:35
4006
原创 BlindCoin
最近看区块链方面的论文,看到了一个BlindCoin的概念,BlindCoin所依靠的原理是盲签名在区块链上用户都是进行点对点的交易,因此如何保证用户交易信息不被泄露成为了一个问题。所谓的BlindCoin就是一种中心化混币机制,通过一个第三方服务商将需要交易的用户的资金进行混合,然后再输出至用户要求的地址。如果不同地址之间存在稳定的关联交易,攻击者可以分析不同地址之间的交易关系图,推导出一些用户特征数据。此外,攻击者可以通过搜索所有可能的近似余额的交易来获取相应的交易地址,然后可以推断出用户的身份信息
2021-11-25 09:07:25
1643
原创 以太坊Dapp开发通过web3.js部署合约
以太坊Dapp开发通过web3.js部署合约在dapp目录下新建一个deploy目录,并安装web3npm install web3 -save创建一个deploy.js文件,并将下面代码贴入var dapptestContract = new web3.eth.Contract([{"constant":false,"inputs":[{"name":"num","type":"uint256"}],"name":"test1","outputs":[],"payable":false,"
2021-11-22 17:48:31
3271
原创 通过ganache与以太坊Dapp实现交互 —— 简单的例子
通过ganache与以太坊Dapp实现交互 —— 简单的例子准备条件:环境:Centos7或者其他版本的linux必备: 安装npm (推荐16.1.0版本) 以及ganache-climkdir testdappnpm install express -gnpm install -g express-generatorexpress -e MyDapp在testdapp文件下会出现以下目录[root@ testdapp]# lsMyDapp node_modules pac
2021-11-21 17:09:13
8435
原创 解决Centos7下安装express之后创建文件失败的问题
解决Centos7下安装express之后创建文件失败的问题在学习Dapp开发的时候,到了用express创建一个项目文件时,发现自己失败[root@XXX testdapp]# express -e MyDappbash: express: 未找到命令...首先我是使用了npm install express -g命令安装了express,之所以会失败是因为还需要下面的命令npm install -g express-generator这时候再去创建一个项目的时候就成功了[root@XX
2021-11-21 15:18:52
525
原创 解决在Centos7安装web3出错
解决Centos7安装npm之后安装web3出错在安装了node.js之后,想在Linux中继续安装web3,发现一直出现以下问题 bufferutil@4.0.5 install /root/dapp/ganacheTest/node_modules/bufferutil node-gyp-buildsh: node-gyp-build: 未找到命令npm WARN enoent ENOENT: no such file or directory, open /root/dapp/ganach
2021-11-21 14:04:26
1225
原创 解决Centos7安装NPM之后bash: node: 未找到命令的错误
解决Centos7安装NPM之后bash: node: 未找到命令的错误今天根据网上教程安装npm,安装之后npm -v命令之后仍然提示没有这个命令后面看了一下自己配置的环境变量。大家配置的环境变量是这样的export NODE_HOME=/usr/local/node export PATH=$NODE_HOME/bin:$PATH后来我发现我的node安装位置是位于root权限下的根目录,这样导致使用npm -v命令自然找不到解决方法:export NODE_HOME=/root/n
2021-11-21 11:38:08
7745
1
原创 基于以太坊的智能合约开发教程Solidity 全局变量自动getter函数
基于以太坊的智能合约开发教程Solidity 全局变量自动getter函数pragma solidity ^0.4.0;contract getterTest{ uint public num = 100; // 带有public修饰符的全局变量,其实是相当于创建了一个带有external修饰符的同名函数 // function num() external view returns(uint){ // // 当external修饰的同名函
2021-11-20 11:35:03
568
原创 基于以太坊的智能合约开发教程Solidity 继承与权限
基于以太坊的智能合约开发教程Solidity 继承与权限pragma solidity ^0.4.0;contract inheritTest{ // 如果不加任何的修饰符,是可以被继承的 uint money = 10000; function jump()pure internal returns(string){ return "jumping"; } function sing()pure private
2021-11-19 21:25:49
1132
原创 Solidity实现智能合约——宠物战斗(四)
Solidity实现智能合约——宠物战斗(四)在这一节当中我们会实现宠物战斗的功能,我们可以选择自己的宠物和别人的宠物进行战斗,有70%的概率自己的宠物胜利,另外给宠物新加俩个属性winCount(uint16),lossCount(uint16)。用来记录战斗胜利和失败的次数,我们可以设置当我们的宠物战斗胜利等级+1,失败则不变。首先在AnimalFactory.sol文件当中为我们的Animal结构体添加俩个新属性 struct Animal{ string na
2021-11-18 09:39:43
586
1
原创 基于以太坊的智能合约开发教程Solidity modifier
基于以太坊的智能合约开发教程Solidity modifierpragma solidity ^0.4.0;contract modifierTest{ address owner; uint public a; constructor(){ owner = msg.sender; } modifier onlyOwner{ // 判断合约的调用者是否等于合约的拥有者 require
2021-11-14 17:30:40
1188
原创 基于以太坊的智能合约开发教程Solidity 构造函数
基于以太坊的智能合约开发教程Solidity 构造函数pragma solidity ^0.4.0;contract constructTest{ // 在合约部署时,构造函数就会执行 uint public a; // 旧版本创建构造函数要与合约名相同 function constructTest(){ a = 100; } }contract constructTest1{
2021-11-14 15:24:02
1122
原创 基于以太坊的智能合约开发教程 Solidity 变量的生命周期与值传递
基于以太坊的智能合约开发教程 Solidity 变量的生命周期与值传递pragma solidity ^0.4.0;contract valuecopy{ uint public a = 200; // a = 100; 定义完之后不能给全局变量重新赋值,会报错 function test()public view returns(uint){ // 函数体内可对局部变量进行重新赋值 uint a =400;
2021-11-14 14:00:11
574
原创 Solidity实现智能合约——Solidity高级理论(三)
Solidity实现智能合约——Solidityg高级理论(三)在上一节当中我们实现了一个可以初始化创建宠物,并让它进食生成一个新宠物的功能,接下来我们继续对这个系统功能进行完善。在这一节当中我们将会完成以下的功能:为宠物添加俩个新属性等级和冷却时间,不知道大家有没有发现上一节宠物可以不限制的进食,在这一节当中我们来给它们做一个进食时间的限制,此外我们可以花费gas让我们的宠物升级,对于达到一定等级的宠物我们可以增加一些新权限:对自己宠物进行更改名字或者是更改DNA。话不多说,我们直接开始吧。Own
2021-11-12 22:29:13
2276
1
原创 基于以太坊的智能合约开发教程 Solidity 函数返回值
基于以太坊的智能合约开发教程 Solidity 函数返回值pragma solidity ^0.4.0;contract funreturn{ function returnTest()view returns(uint){ uint a =10; return a; } function returnTest2() returns(uint mul){ mul =100; } funct
2021-11-09 19:57:18
995
原创 基于以太坊的智能合约开发教程 Solidity 函数重载
基于以太坊的智能合约开发教程 Solidity 函数重载pragma solidity ^0.4.0;contract funcParam{ uint public num; string public name; // 在控制台输入变量时,当uint处于第一个变量时,可以只输入一个变量,这是没问题的。未输入的变量会赋默认值 // 如果string类型处于第一个的输入值的话,只输入一个name,会报错。 function setPara
2021-11-09 19:36:45
713
原创 基于以太坊的智能合约开发教程 Solidity mapping映射
基于以太坊的智能合约开发教程 Solidity mapping映射映射类型在声明时的形式为 mapping(_KeyType => _ValueType)。 其中 _KeyType 可以是任何基本类型,即可以是任何的内建类型, bytes 和 string 或合约类型、枚举类型。 而其他用户定义的类型或复杂的类型如:映射、结构体、即除 bytes 和 string 之外的数组类型是不可以作为 _KeyType 的类型的。pragma solidity ^0.4.19;contract mapp
2021-11-09 18:51:05
2355
1
原创 基于以太坊的智能合约开发教程 Solidity 全局变量
基于以太坊的智能合约开发教程 Solidity 全局变量block.blockhash(uint blockNumber) neturns (bytes32):返回给定区块号的哈希值,只支持最近256个区块,且不包含当前区块。在版本0.4.22中奔用并被替换为。bLockhash(uint bLockNumben)block.coinbase (address):当前块矿工的地址。block.difficulty (uint):当前块的难度。block.gaslimit (uint)当前块的
2021-11-07 11:00:19
537
原创 基于以太坊的智能合约开发教程 Solidity 地址与交易
基于以太坊的智能合约开发教程 Solidity地址与交易地址与交易包括使用钱包转移资金,合约与合约账户,transfer转移资金学习代码如下:pragma solidity ^0.4.19;contract payabletest{ // 可以进行转账操作,在部署成功之后,在页面当中的value填入10ether, //然后点击pay,就能发现外部账户当中的10ether成功转入合约账户,而且getBalance可以查看这个账户的金额 fu
2021-11-07 10:32:06
2287
原创 Solidity实现智能合约——宠物进食系统(二)
Solidity实现智能合约——宠物进食系统(二)在上一节当中我们实现了创建宠物的功能,接下来将继续完善功能,让我们的宠物可以进食。为了存储宠物的所有权,我们会使用到两个映射:一个记录宠物拥有者的地址,另一个记录某地址所拥有宠物的数量。创建一个叫做 AnimalToOwner 的映射。其键是一个uint(我们将根据它的 id 存储和查找宠物),值为 address。映射属性为public。创建一个名为 ownerAnimalCount的映射,其中键是 address,值是 uint。 mappin
2021-11-05 23:43:46
2238
原创 Solidity实现智能合约——宠物孵化系统(一)
Solidity实现智能合约——宠物孵化系统上一节中简单介绍了如何实现一个智能合约,接下来我们将实现一个宠物孵化系统。合约功能:输入宠物名会生成宠物相对于的DNA,然后会将宠物名和DNA存储到一个数组当中,我们可以进行查询。首先建议一个基础合约AnimalFactory,并指定Solidity编译器版本pragma solidity ^0.4.19;contract AnimalFactory{ } 宠物DNA由16个数字组成uint
2021-11-05 15:03:45
2353
1
原创 Solidity实现简单的智能合约
Solidity实现简单的智能合约今天使用solidity来实现一个简单的智能合约Solidity是以太坊中编写智能合约的语言,编译成字节码之后可以运行在以太坊虚拟机上。solidity语法与JavaScript很相似,有编程基础的开发者可以轻松上手,智能合约一旦部署就无法修改。首先介绍我们的编译工具: Remixremix是一款非常好用的在校编译工具,我们通过这个工具能部署实现简单的智能合约。 传送门:链接: remix.打开之后首页会是这样的。接下来我向大家演示一下如何实现helloworl
2021-11-01 15:14:57
4606
1
原创 如何查看自己电脑开启了哪些端口号
如何查看自己电脑开启了哪些端口号最近在看网络安全方面的知识,学习了部分知识之后就想看看如何查看自己电脑上开启了哪些端口号,查询资料之后发现了方法。在Windows系统当中通过Win+r键输入cmd命令进入控制台下面的命令用于显示各种网络相关信息netstat -an 如下图,这里我只截取了部分图片如果我们想关闭某些端口号的话,可以在控制面板->管理工具->服务中找到相应端口对应的服务,我们将其停止就就等于将端口号给关闭了。1、8080端口 端口说明:8080端口同80端口,是
2021-10-31 11:01:11
10436
原创 在Centos 7下使用Geth搭建自己的以太坊私有链
在Centos 7下使用Geth搭建自己的以太坊私有链今天看到课本上的以太坊客户端搭建私有网络进行操作部分,然后我也跟着书上动手试验了一下,发现按照书上的步骤无法成功,然后在网上找资料看大家的做法,不断的试错之后终于是成功了,接下来记录一下我的过程。试验模拟前提:已经在Centos 7下搭建好了Geth客户端首先新建一个工作目录mkdir privatechain先cd privatechain然后在这个工作目录下新建一个data目录mkdir data然后创建我们的创世块文件 gene
2021-10-24 17:24:10
878
1
原创 关于docker删除镜像的问题
记录docker如何删除镜像首先使用以下命令使docker启动systemctl start docker用docker images查看自己有哪些镜像要删除镜像,首先得停止container,否则删除不了docker stop $(docker ps -a -q)使用docker rmi -f 8e64853afe20 将镜像强制删除,结果如下:这样就可以把镜像删除掉了。...
2021-10-23 19:11:47
197
原创 Fatal: invalid genesis file: invalid character ‘ï‘ after object key:value pair
解决初始化创世块json文件出错的问题在进行以太坊创世区块文件的初始化过程中,报错:Fatal: invalid genesis file: invalid character ‘ï’ after object key:value pair下面这是我未改动的json文件{ "config": { "chainId": 10, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "coi
2021-10-23 16:15:46
3309
转载 Centos7更换yum国内源
更换yum国内源网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。安装步骤首先备份/etc/yum.repos.d/CentOS-Base.repomv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载对应版本 repo 文件, 放入 /etc/yum.rep
2021-10-23 15:11:17
264
原创 linux虚拟机中安装geth
linux环境下的geth安装git clone git://github.com/ethereum/go-ethereum出现以下信息正克隆到 'go-ethereum'...remote: Enumerating objects: 101980, done.接收对象中: 100% (101980/101980), 169.42 MiB | 108.00 KiB/s, done.remote: Total 101980 (delta 0), reused 0 (delta 0), pack-
2021-10-22 11:31:26
2303
3
原创 解决git clone出现错误的问题
gerror: RPC failed; result=35, HTTP code = 0 fatal: The remote end hung up unexpectedly今天在centos7中进行下载以太坊客户端的时候出现了一个问题,我在终端输入以下的代码git clone https://github.com/ethereum/go-ethereum然后出现了错误正克隆到 'go-ethereum'...error: RPC failed; result=35, HTTP code =
2021-10-22 10:21:05
1048
原创 解决Centos 7安装了VMTools之后,不能找到共享文件夹的文件问题
解决Centos 7安装了VMTools之后,不能找到共享文件夹的文件问题最近在学习linux相关的知识,安装了centos7,并想使用文件夹的时候,发现虚拟机中/mnt/hgfs找不到相关的目录,经过一段时间查找资料,了解到我们在安装vmtools工具之后,需要将我们的共享文件夹挂载到linux当中的对应目录才能起作用这是我安装了vmtools并设置了共享文件夹之后在终端中并未找到相应的文件夹,它是空的我们此时可以用下面的命令查看共享的文件夹vmware-hgfsclient然后发现确实存在
2021-10-17 17:23:47
1399
1
原创 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
关于docker images出现问题的解释今天在centos 7中终端输入docker images命令时出现以下问题:一开始以为是我的docker是不是没有了,然后检查了一下发现docker还在:后来查了一下资料,发现大家对于这个问题的解答是需要重新开启docker服务:在终端输入以下命令:systemctl start docker然后再重新检查一下自己的镜像,发现此时出来了:...
2021-10-11 15:28:52
115
原创 关于VScode当中引入自己创建包时XXX is not in GOROOT的错误
关于VScode当中引入自己创建包时XXX is not in GOROOT的错误今天在学习Go语言包这一章内容时,自己创建了一个包,想要在另一个包中进行引入使用其中的函数时,碰到了这样的错误:main.go:4:2: package go_code/chapter04/functiondemo/utils is not in GOROOT (D:\Program Files\go1.17.1.windows-amd64\go\src\go_code\chapter04\functiondemo\uti
2021-09-19 20:10:19
2891
6
原创 Springboot自定义更改Banner
Springboot自定义更改banner今天看视频学习springboot的时候,发现了一个好玩的东西,跟大家分享一下当我们用IDEA生成一个springboot项目后,启动项目可以看到下方这个图案,也叫做banner,其实这个东西并没有什么实用性,对于我们这种小白来说只是觉得好玩,看起来很高大上那该如何给我们项目添加自定义的banner,提升逼格呢?这下面是我在网上搜到的一个自定义banner的网站:Spring Boot自定义启动Banner在线生成工具: https://www.bootsc
2021-06-16 10:55:02
275
原创 解决IDEA创建springboot项目失败的问题
解决IDEA创建springboot项目失败的问题 Error: Cannot download 'https://start.spring.io/starter.zip?type=maven-project&packaging=jar&javaVersion=1.8&language=java&bootVersion=2.5.1&groupId=com.example&artifactId=demo&name=demo&version=
2021-06-11 21:09:00
2941
原创 使用SSM框架实现增删改查操作
使用SSM框架实现增删改查操作SSM整合mybatisSSM整合SpringSSM整合Spring-MVCSSM整合mybatis首先这是我们最后整合出来的一个系统的框架,大概的所需要的内容目录如下图所示:pom.xml文件中需要导入的依赖<dependencies> <!--Junit--> <dependency> <groupId>junit</groupId>
2021-06-04 10:46:31
2562
原创 解决maven静态资源导出失败的问题
解决maven静态资源导出失败的问题我们有时候运行项目时,代码是正确的,但是运行不出来结果,可能是我们的一些静态资源被拦截了,在pom.xml文件中加入以下代码解决问题<build> <resources> <resource> <directory>src/main/java</directory> <includes>
2021-06-01 20:28:48
237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅