- 博客(41)
- 收藏
- 关注
原创 linux:设置服务开机自启动、查看服务启动状态
我们敲入命令:systemctl enable mynginx 就能让mynginx服务开机自启动。systemctl status mynginx:查看mynginx是否启动的状态。该功能用的比较多,因为服务器一般不会关机。
2024-08-05 15:07:48
303
原创 linux:制作systemctl系统服务
也就是说,要想被systemctl管理,就要在/usr/lib/systemd/system目录下,该软件就必须要在这个目录下创建这样一个.service文件。2、我们以niginx为例,系统自带的nginx软件,在/usr/lib/systemd/system目录下有nginx.service文件。1、我们在/usr/lib/systemcd/system下有各种.service文件。3、我们以nginx为例,创建mynginx.service文件。
2024-08-05 14:07:56
258
原创 linux:基本权限
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。Linux下使用chmod命令来变更权限,root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件。Linux下使用chmod命令来变更权限,root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件。
2024-07-31 13:47:19
257
原创 linux:解压和压缩
在windows系统下,我们接触最多的压缩格式是 rar 或 zip ,但在Linux上使用最多的压缩格式是 zip 和 tar.gz。当然不用担心,Linux上的压缩格式放在windows系统下都是可以正常打开的。PS: Linux不支持 Windows下的 RAR 格式的压缩文件。Windows和Linux互通通常选择 zip。
2024-07-30 22:48:57
303
原创 linux:su和sudo
su jasmine :不开新的bash,也不加载jasmine的环境变量su -jasmine:开新的bash,加载jasmine的环境变量。
2024-07-30 21:05:28
273
原创 linux:用户管理,增删改
Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息,密码被存放在/etc/shadow中。下面我们就围绕着用户的创建、变更、删除等来讲讲涉及到的命令: useradd、usermod、userdel。# -s 指定要创建用户的bash shell /bin/bash /sbin/nologin。# -G 指定要创建用户附加组,逗号隔开可添加多个附加组。#选项 # -u 指定要创建用户的UID,不允许冲突。# -M 给创建的用户不创建家目录。#1.创建bgx用户,
2024-07-30 02:46:04
306
原创 ethers.js2:provider提供商
ethers.js的Provider类,并用Infura的节点API Key创建了,读取了ETH主网和Goerli测试网的链上信息。
2023-08-22 16:38:57
1068
原创 ethers.js1:ethers的安装和使用
ethers.js是一个完整而紧凑的开源库,用于与以太坊区块链及其生态系统进行交互。如果你要写Dapp的前端,你就需要用到ethers.js。与更早出现的web3.jsethers.js大小为116.5 kB,而web3.js为590.6 kB。Web3.js认为用户会在本地部署以太坊节点,私钥和网络连接状态由这个节点管理(实际并不是这样);ethers.js中,Provider提供器类管理网络连接状态,Wallet钱包类管理密钥,安全且灵活。原生支持ENS。
2023-08-22 12:17:03
2020
2
原创 solidity0.8.0的应用案例7:线性释放合约
在传统金融领域,一些公司会向员工和管理层提供股权。但大量股权同时释放会在短期产生抛售压力,拖累股价。因此,公司通常会引入一个归属期来延迟承诺资产的所有权。同样的,在区块链领域,Web3初创公司会给团队分配代币,同时也会将代币低价出售给风投和私募。如果他们把这些低成本的代币同时提到交易所变现,币价将被砸穿,散户直接成为接盘侠。所以,项目方一般会约定代币归属条款(token vesting),在归属期内逐步释放代币,减缓抛压,并防止团队和资本方过早躺平。
2023-08-19 23:45:43
421
原创 solidity0.8.0的应用案例6:分账合约
分账就是按照一定比例分钱财。在现实中,经常会有“分赃不均”的事情发生;而在区块链的世界里,,我们可以事先把每个人应分的比例写在智能合约中,获得收入后,再由智能合约来进行分账。分账合约,该合约允许将ETH按权重转给一组账户中,进行分账。代码部分由oppenzepplin库的简化而来。
2023-08-18 04:03:16
165
原创 solidity0.8.0的应用案例5:WETH
在2015年,标准出现,该代币标准旨在为以太坊上的代币制定一套标准化的规则,从而简化了新代币的发布,并使区块链上的所有代币相互可比。不幸的是,以太币本身并不符合ERC20标准。WETH的开发是为了提高区块链之间的互操作性 ,并使ETH可用于去中心化应用程序(dApps)。它就像是给原生代币穿了一件智能合约做的衣服:穿上衣服的时候,就变成了WETH,符合ERC20同质化代币标准,可以跨链,可以用于dApp;脱下衣服,它可1:1兑换ETH。WETH。
2023-08-17 03:28:00
116
原创 solidity0.8.0的应用案例1,如何实现ERC20合约或者如何发行ERC20代币
ERC20是以太坊上的代币标准,来自2015年11月V神参与的。IERC20是ERC20代币标准的接口合约,规定了ERC20代币需要实现的函数和事件。之所以需要定义接口,是因为有了规范后,就存在所有的ERC20代币都通用的函数名称,输入参数,输出参数。在接口函数中,只需要定义函数名称,输入参数,输出参数,并不关心函数内部如何实现。由此,函数就分为内部和外部两个内容,一个重点是实现,另一个是对外接口,约定共同数据。这就是为什么需要ERC20.sol和IERC20.sol两个文件实现一个合约。IERC20。
2023-08-15 02:43:36
194
2
原创 solidity0.8.0的应用案例2,如何实现代币水龙头
逻辑:我们将一些ERC20代币转到水龙头合约里,用户可以通过合约的函数来领取100单位的代币,每个地址只能领一次。
2023-08-15 02:33:21
65
原创 solidity0.8.0中如何使用内联汇编
在Yul中,使用let关键字定义变量。使用:=assembly {let x := 2和Solidity 不同,Solidity只需要用, 因此不要忘了如果没有使用:=assembly {let x // 自动初始化为 x = 0x := 5 // x 现在的值是5assembly {let x := 7let n // 自动初始化为 n = 0汇编中let指令的运行机制在EVM的内部,let创建一个新的堆栈槽位为变量保留该槽位当到达代码块结束时自动销毁该槽位。
2023-08-07 22:17:51
131
原创 solidity0.8.0新语法
在合约继承的时候,需要注意当多线继承的时候,需要注意书写继承的合约的先后顺序,不然编译就会报错,原则,基类在前,派生在后。比如。
2023-08-05 19:21:37
117
原创 solidity8.0的基本语法
我们的合约是不需要指定存储关键字的,因为默认就是storage(其实等同于上一句话,合约中的成员变量的存储位置无需指定,自动默认)。在solidity中,基础数据类型,比如bool,int,address,他们的赋值传参都是值拷贝,所有复杂数据类型,比如:struct,mapping,数组类型[],他们的赋值传参的时候,到底是值拷贝还是引用传递,要看两者的数据类型是否一致。如果相同类型的赋值时引用传递,其余是值拷贝,其中特殊的是,storage与storage之间是值拷贝。
2023-08-03 01:34:50
130
原创 hardhat安装和使用
在scripts中建deploy.js部署文件,在该文件中输入如下代码(其他合约,只需要修改合约文件名称)(注意,deployContract("Add"),中的Add是合约名称,不是合约文件名称,与truffle一样)。4、因为 hardhat.config.js配置文件中有大量敏感信息,我们一般不存放在该文件内,而是存放在.env文件中,该文件一般也不上传到git上去。在test文件夹下,建test\Add.js的测试文件,在文件内输入测试代码,其他合约测试代码根据这个进行改写。
2023-08-02 02:14:23
401
原创 vscode与虚拟机代码同步
主要是要配置:host:虚拟机Ip,username:虚拟机用户名,remotePath:需要与虚拟机哪个路径的文件进行同步。4、在命令栏中选择SFTP: Upload Project上传当前项目,会提示输入虚拟机用户密码,完成同步。
2023-07-31 00:27:15
347
原创 web3.py的配置和启动以及web3.is_connected()报错: False
我在linux中用conda create了一个虚拟环境,并激活的虚拟环境。我在linux的python项目虚拟环境中下载:验证 pip list 看到是1.10.0版本。2、导入web3和测试提供商。
2023-07-24 01:08:18
564
原创 linux安装Python3
在linux系统中,在终端窗口输入python命令,会提示系统自带的python版本,如图所示:如果是pyothon2的版本,我们需要使用python3的话,不用卸载,可以继续安装python3。
2023-07-15 18:49:52
403
原创 pycharm如何连接vmvare虚拟机,基于Linux虚拟环境conda开发python项目
在某些公司要求中,我们不会直接在Windows系统上做项目的开发,有时候会采用在linux系统上开发,而这分为两种情况1.直接在本地搭建虚拟机,虚拟机上面装centos镜像,项目运行在本地虚拟机上,大部分原因都是项目的某些依赖包在Windows系统上很难安装,或者安装不上2.直接连接远程服务器,在远程服务的linux系统上进行项目开发不管以上两种方法哪一种,但是开发的流程是大同小异的,本文主要针对在本地的虚拟机上进行项目的开发1.本地搭建虚拟机,运行centos,不做详述。
2023-07-15 16:10:46
563
原创 安装虚拟机centos7
4.关键是配置日期,网络,软件和hostname四个,安装信息摘要、键盘、语言、安装源,选择默认不用管(日期要选上海,日期里有一个虚拟机与网络日期同步,要等把网络配好了才能开启,先放着,网络配好了后再回来改)内存越大越好,但是也要考虑电脑本身的内存大小,不能把所有内存都给虚拟机用,我的电脑内存不大,所以就1G给虚拟机。7.选择处理器数量,每个处理器的内核数量,根据自己需求选择,然后下一步。15不兼容12,但是12兼容15,所以为了兼容,最好选12,但是15也没啥问题。14.指定磁盘文件,点击下一步。
2023-07-15 00:30:21
45
原创 web3.js错误合集
错误1:使用web3.eth.filter报错:Uncaught TypeError: web3.eth.filter is not a function。报错如下:UncaughtTypeError: Web3.providers.HttpProvider is not a constructor。但是,您可以通过WS使用它。因此,您引用的文档不是100%错误,它只是省略了代码的提供程序部分。问题是,我的web3版本太高了:4.0.2,我降级到1.10.0就不存在这个问题了。方法已被弃用,并且不再可用。
2023-07-08 15:22:04
726
1
原创 truffle migrate一直报错,Transaction was not mined within 750 seconds, please make sure your transaction
对于第一种情况:最后只能重新下载geth的其他版本和genesis.json的不同版本,来回试。最后用geth -1.10.19,genesis.json用官方的github上的版本才最终搞定。另外一种情况:一直在pending,就是不打包,只能用新的交易把这个交易给顶掉,设置更高的gasPrice,nonce值一样。或者因为CPU的问题,直接用POA的geth.1、genesis.json的版本不对,2、gas值给低了。
2023-07-03 23:24:03
148
1
转载 linux怎么创建一个shell脚本
这点尤其重要,不然不会发现build.sh根本执行不了,因为它只是一个被nano文本编辑器创建出来的文本文件。在目录中创建名为build.sh的shell脚本文件,准备在里面编写编译命令。在build.sh文件中的首行写入如下注释,以表示此脚本指定的执行器。
2023-07-02 21:42:49
1621
1
原创 Fatal: Failed to start the JavaScript console: api modules: Post “http://localhost:8545“: dial tcp 1
原因是我在启动geth时,多加了一个console。启动geth后,查看geth进程是否运行。如果看到有geth进程,说明启动节点了。里面没有console。再输入命令,进入控制台。另外,要关闭防火墙。
2023-06-30 02:11:25
243
原创 /lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)
原因就是,libc.so.6里面缺乏 GLIBC_2.18造成的。随便找一个目录,依次输入以下命令,即可。安装成功,终于解决了,弄了我好久好久。验证glibc_2.18是否安装成功。
2023-06-30 01:21:16
7110
8
原创 linux升级make
ln -sv /usr/local/make/bin/make /usr/bin/make(这一步是将新版本的运行程序软连接到/usr/bin目录下)但是我的我问题还在后面,因为我升级了make后,在编译glibc的时候,说我的gcc 和make版本too old。cd /usr/bin/ && mv make make.bak(这一步是将原有的老版本进行备份)这个时候很多人会说已经安装成功了,但是还有一个问题,就是以前的make版本怎么办?并且该版本的运行程序的软链接在/usr/bin目录下。
2023-06-29 22:47:16
1197
1
原创 使用scl来管理gcc版本
source /opt/rh/devtoolset-11/enable(不知道什么时候安装在了opt/rh目录下,而且自己建了rh目录)提示要卸载的版本有两个依赖,要先卸载掉这两个依赖(注意:下面要卸载的版本号要和上面提示的两个依赖的版本号一致)在安装之前,可以先去查询一下目前gcc 、g++的版本以及区别,本文用了第11版。将这两个依赖卸载完成之后再次执行第3步就可卸载成功。2、安装gcc和g++包(注意版本号:11版)到这里一直都没有问题,但是验证安装,却一直出现。
2023-06-29 16:47:32
663
1
原创 修改 npm 下载地址修改为国内淘宝镜像
# 修改为新淘宝镜像(推荐)npm config set registry https://registry.npmmirror.com/# 查看当前下载地址npm get registry # 或 npm config get registry转载自:https://www.cnblogs.com/Megasu/p/16699226.html
2023-06-29 15:23:26
177
1
原创 下载nvm,并用nvm管理nodejs
不过找到了他的github仓库地址,https://github.com/nvm-sh/nvm,由于科学上网工具今天不方便使用,就没有上去看。安装的第一个版本将成为默认版本。新的 shell 将以默认版本的节点启动(例如。安装的第一个版本将成为默认版本。新的 shell 将以默认版本的节点启动(例如。1、下载nvm,我并没有找到官网,只能从网上找到这个下载连接。另外,要给nvm加入淘宝镜像,不然下载nodejs会很慢。证明网上的这些方式都已经过时了,根本行不通。再打开 vim ~/.bashrc。
2023-06-29 15:06:40
385
1
原创 搭建geth私链出的问题,ethash is only supported as a historical component of already merged
运行环境:Centos7 , geth1.12.0初始化已经执行完了。在启动geth时报Fatal: Failed to register the Ethereum service: ethash is only supported as a historical component of already merged networks错误。解决方案:问题已经用降版本的方式处理了,用1.11.6可以。查官方文档说1.12.0版本已经不再支持PoW。
2023-06-27 16:50:46
3558
2
原创 geth常见报错:personal已经弃用
如下:geth --datadir node1 --networkid 1008 --rpc.enabledeprecatedpersonal --nodiscover console 2>1.log。大体意思就是personal这个namespace已经不用了,如果再想用的话,需要通过。新geth版本中已经弃用personal对象。
2023-06-26 01:27:49
692
2
原创 Linux设置yum源为阿里云镜像源
wget命令下载: wget [options] [url]# curl命令下载: curl [options] [url]2、下载阿里云Centos-7.repo文件。
2023-06-25 01:48:59
2690
原创 输入nvm ls-remote报错
原因:因为国内网络导致,需要采用淘宝源下载nodejs(否则哪怕远程访问也不行)。在~/.bashrc最后加入:就解决了。
2023-06-25 01:00:30
1153
原创 make geth报错env.sh
原因是geth的启动文件env.sh中的文件格式是dos(set ff就会出现set ff==>fileformat=dos),那么它的换行符是/r/n,就需要把文件格式换过来。1、切换到build下面的 env.sh,进入编辑模式i,输入set ff=unix,再输入wq保存退出,2、再次执行make geth。
2023-06-06 03:06:11
213
原创 创建启动geth私有链
此时创建的账户,由geth管理,创建完的账户,填到genesis.json中去(启动的私有链的账户alloc就有了初始余额,不再非要挖矿就有余额了)。3、配置系统环境变量。
2023-05-24 02:38:45
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人