- 博客(180)
- 收藏
- 关注
原创 使用Cosmovisor升级Cosmos生态链
upgrade-height创建一个upgrade-info.json文件。这意味着如果在–upgrade-height指定的高度之前通过治理提案执行链升级,治理提案将覆盖由add-upgrade --upgrade-height 创建 upgrade-info.json 的升级计划。使用时请考虑到这一点–upgrade-height。初始化之后的目录结构。
2024-11-26 15:09:20
335
1
原创 以uniswap为例讲解使用etherscan
1、查询合约代码通过使用项目名称检索查询合约,uniswap需要寻找的为工厂合约;这里搜索出来的是v1版本的,v1版本合约使用python写的。v2版本的路由合约地址为:0xf164fC0Ec4E93095b804a4795bBe1e041497b92a2、寻找部署合约通过点击Outline可以查看合约中所有合约和方法,其中最粗的为所部署的合约;点击contract UniswapV2Router01 is IUniswapV2Router01可以查看合约内容,这里需要重点关注的为合约的
2022-05-13 17:48:30
1049
原创 BurntSushi/toml包使用方法
toml文件# 全局信息title = "TOML示例"# 应用信息[app] author = "史布斯" organization = "Mafool" mark = "第一行\n第二行." # 换行 release = 2020-05-27T07:32:00Z # 时间# 数据库配置[mysql] server = "192.168.1.1" ports = [ 8001, 8001, 8002 ] #
2022-03-11 14:08:11
970
原创 github常用用法总结
0、名词解释Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库1、一般使用内容# 创建一个新的git仓库git init# clone一个项目git clone# 取回远程仓库的变化,并与本地分支合并$ git pull [remote] [branch]# 新建一个分支,并切换到该分支$ git checkout -b [branch]# 添加当前目录的所有文件到暂存区$ git add
2022-03-10 20:05:31
873
原创 ubuntu设置成密码登录(以AWS服务器为例)
切换root用户sudo su设置root密码sudo passwd root启用密码登陆vim /etc/ssh/sshd_configPasswordAuthentication yesPermitRootLogin yes重启ssh服务sudo service sshd restart
2022-03-09 11:35:24
2740
原创 Solidity注释格式
注释Solidity 里的注释和 JavaScript 相同。在我们的课程中你已经看到了不少单行注释了:// 这是一个单行注释,可以理解为给自己或者别人看的笔记/* 这是多行注释*/Solidity 社区所使用的一个标准是使用一种被称作 natspec 的格式,看起来像这样:/// @title 一个简单的基础运算合约/// @author 童蒙_/// @notice 现在,这个合约只添加一个乘法contract Math { /// @notice 两个数相乘 //.
2022-03-08 16:31:13
626
原创 Solidity格式
合约之间间隔在 solidity 源码中合约声明之间留出两个空行。contract A { ...}contract B { ...}contract C { ...}在一个合约中的函数声明之间留有一个空行。在相关联的各组单行语句之间可以省略空行。(例如抽象合约的 stub 函数)。pragma solidity ^0.6.0;abstract contract A { function spam() public virtual pu
2022-03-08 16:04:41
333
原创 Ethereum智能合约迁移到PlatON教程
Ethereum生态的不断壮大,导致交易数量急剧增加,用户不得不在交易速度和手续费之间做出艰难的选择。随着DeFi和NFT项目持续火爆,产生了高额利润催生了大量的“套利”交易,导致用户对区块链数据隐私的需求不断增加。PlatON结合区块链、人工智能和隐私计算技术,建立了一个去中心化的协作式隐私人工智能区块链网络。相较于以太坊在交易速度、交易成本和数据隐私方面有巨大的优势。为提高开发效率,PlatON 1.1.1版
2022-02-25 14:05:06
2121
原创 阅读Compound合约感觉Solidity的坑
memory和storage之间的赋值storage和memory之间是值拷贝;其他的向storage都是值拷贝;memory和memory之间是指针拷贝;storage和local storage之间是指针拷贝;使用了view依然可以修改要深入理解
2021-11-08 18:09:01
10364
原创 tmux使用
1、安装mtuxsudo apt-get install tmux -ytmux -V2、创建新的mtux会话tmux new-session -s processName3、常用命令窗口退出(与会话分离):Ctrl+b d为会话起名:tmux new -s <session-name>接入会话:tmux attach -t <session-name>杀死会话:tmux kill-session -t <session-name>切换会话:tm
2021-06-09 18:25:05
387
原创 Solidity学习笔记
1、Solidity特性相较于javaScript新增address类型;语言内嵌框架支持支付;提供了payable等关键字,可以在语言层面直接支持支付;使用区块链进行数据存储。数据的每个状态都可以永久存储,所以再使用时需要确定变量使用内存,还是区块链存储;运行环境实在去中心化的网络上,所以需要强调合约或函数执行的调用方式不同的异常机制。一旦出现异常,所有的执行都将回回撤,这主要是保证合约执行的原子性,避免中间状态的出现的数据不一致;2、Solidity关键字pragma:杂注,在
2021-05-20 16:46:40
800
1
原创 VSCode常用快捷键
1、与窗口管理相关的快捷键文件之间切换: Ctrl+Tab将当前文件分屏:Ctrl+\形成新的分屏:Ctrl+1, Ctrl+22、与代码格式相关的快捷键代码缩进Ctrl+[ , Ctrl+],其中Ctrl+]=Tab代码格式化:Shift+Alt+F代码移动:Alt+Up 或 Alt+Down代码复制:Shift+Alt+Up 或 Shift+Alt+Down在当前行上方插入空白行:Ctrl+Enter在当前行下方插入空白行:Ctrl+Shift+Enter3、与光标相关
2021-05-07 20:04:06
169
原创 Goland常用快捷键
工作中Goland常用快捷键(windows环境下)(1)返回上次光标所在位置Ctrl+window+Alt +左箭头或右箭头(2)跳转到interface实现ctrl + alt + 鼠标左键
2021-01-28 18:34:08
2684
原创 常用的ETH命令
一、ubuntu安装gethsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereum二、通过geth启动ETH测试网络geth --datadir /data/eth/.ethereum/ropsten --port 30301 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --syncmode light --ropsten
2020-11-09 16:09:15
1426
原创 etcd-go配置中心
初始化type SecLayerConf struct { Proxy2LayerRedis RedisConf Layer2ProxyRedis RedisConf EtcdConfig EtcdConf LogPath string LogLevel string WriteGoroutineNum int ReadGoroutineNum int HandleUserGoroutineNum int Read2h
2020-08-16 10:14:00
1092
原创 老男孩秒杀系统框架
秒杀接入层功能对应程序在SecProxy路径下长连接IP黑名单ID黑名单抢购开关url校验refer白名单秒杀业务层对应程序在SecLayer路径下redis配置etcd配置等级配置速度配置goroute概率配置是否售罄是否超速是否已购买是否总数超速是否黑名单随机抽奖更新总数更新速度秒杀Web对应程序在SecAdmin路径下商品添加商品浏览强制售罄商品修改开源地址...
2020-08-15 19:28:02
241
原创 Debug程序
1、Debug简介1.1 什么是程序DebugDebug,是程序开发人员必会的一项调试程序的技能企业中程序开发和程序调试的比例为1:1.5,Debug是必须掌握的技能1.2 Debug能帮助我们做什么追踪代码的运行流程程序运行异常定位和调试线上问题追踪1.3 Debug的意义通过调试能够更好的查看程序的执行流程复杂的程序逻辑,通过老师的口述讲解,很难理解清楚,调试是帮助理解的好方法定位问题,提高自我解决问题的能力2、IDEA中Debug步骤(1) 设置断点(F9)(2
2020-08-11 21:36:44
973
原创 Go从入门到实战——反射编程(笔记)
reflect.TypeOf和reflect.ValueOf比较利用反射编写灵活代码DeepEqual比较切片和map关于“反射”的注意点
2020-08-02 15:33:39
154
原创 Go从入门到实战——sync.Pool对象缓存(笔记)
sync.Pool对象获取私有对象是协程安全的,共享池是协程不安全的私用对象不用使用锁,共享池需要使用锁sync.Pool对象放回代码实例sync.Pool对象的生命周期
2020-08-02 11:22:57
256
原创 Go从入门到实战——对象池(笔记)
使用buffered channel实现对象池type ReusableObj struct {}type ObjPool struct { bufChan chan *ReusableObj}func NewObjPool(numOfObj int) *ObjPool { objPool := ObjPool{} objPool.bufChan = make(chan *ReusableObj, numOfObj) for i := 0; i < numOfObj; i++
2020-08-02 11:07:43
158
原创 Go从入门到实战——所有任务完成(笔记)
func runTask(id int) string { time.Sleep(10 * time.Millisecond) return fmt.Sprintf("The result is from %d", id)}func FirstResponse() string { numOfRunner := 10 ch := make(chan string, numOfRunner) for i := 0; i < numOfRunner; i++ { go func(i in
2020-08-02 10:35:26
184
原创 Go从入门到实战——仅需任意任务完成(笔记)
使用无缓冲的channelfunc runTask(id int) string { time.Sleep(10 * time.Millisecond) return fmt.Sprintf("The result is from %d", id)}func FirstResponse() string { numOfRunner := 10 ch := make(chan string) for i := 0; i < numOfRunner; i++ { go func(i i
2020-08-02 10:23:13
222
原创 Go从入门到实战——仅执行一次(笔记)
单例模式var ( once sync.Once obj *SingletonObj)type SingletonObj struct {}func GetSingletonOb() *SingletonObj { once.Do(func() { fmt.Println("Create Singleton obj") obj = &SingletonObj{} }) return obj}
2020-08-02 10:02:37
338
原创 Go从入门到实战——Context与任务取消(笔记)
关联任务的取消Contextfunc isCancelled(ctx context.Context) bool { select { case <-ctx.Done(): return true default: return false }}func TestCancel(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) for i := 0; i < 5; i++
2020-08-01 22:07:25
183
原创 Go从入门到实战——任务的取消(笔记)
任务取消代码展示func isCancelled(cancelChan chan struct{}) bool { select { case <-cancelChan: return true default: return false }}func cancel1(cancelChan chan struct{}) { cancelChan <- struct{}{}}func cancel2(cancelChan chan struct{}) { close
2020-08-01 21:33:44
396
原创 Go从入门到实战——共享内存并发机制(笔记)
共享内存并发机制Lock错误示范package share_testimport ( "testing" "time")func TestCounter(t *testing.T) { coun := 0 for i := 0; i < 5000; i++ { go func() { coun++ }() } time.Sleep(time.Second) t.Log(coun)}在不同的协程中进行自增,增加了相互竞争。不是一个线程安全的程序正确
2020-08-01 16:42:19
309
原创 Go从入门到实战——协程机制(笔记)
Thead和Groutine比较多对多简图多对多情况下,多个Goroutine对应同一个系统线程,相互之间的切换成本较低Go基本调度机制Processor会对一点时间内完成的Goroutine数量进行计数,如果长时间没有发生改变,就会将目前正在执行的Goroutine插到队尾;当某一个Goroutine被系统中断了如读写IO操作,Processor会把自己移动到另一个System Thread中继续完成其他Goroutine。并将目前运行记录下来,执行完IO之后,继续回来操作错误使用方
2020-08-01 16:09:13
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人