tron-节点-witness加载过程
简述witness 即在tron链中就是产块节点的代名词,一般称为SR。一般节点不产块,要配置成witness,需要启动时指定私钥,并使用--witness或-w指定成为产块节点。
witness 加载过程有两种加载方式:
参数或配置文件
指定localwitness启动
参数或配置文件通过参数指定为witness节点,但是私钥建议写在配置文件中,否则ps查看一下进程就能看到启动参数,就全暴露了,但是如果有人能上机器,也能查看配置文件。
1java -jar FullNode.jar --witness -p xxxxxxxxxxxxxxxxxx
输入上面的命令后,节点就会以SR类型启动,具体是如何加载的,调用栈如下:
1234567FullNode.main()\--Args.setParam(args, Constant.TESTNET_CONF); //381 \--PARAMETER.privateKey //优先加载 参数 \--Constant.LOCAL_WITNESS & ...
go结合Slash Commands使用
需求通过 Slack 命令模式,调用操作远程服务器。服务端需要跟一个http服务来解析slash调过来的命令。
准备准备以下步骤:
创建Slash conmand
开发服务端应用
添加 Slash Conmand添加App先到官网地址:https://api.slack.com/ 创建一个App
选Slash Conmand
输出一个自定义命令
到这就创建完成了,接下来开发服务端。
实现创建 go 项目slacktool,添加:
main.go 文件
go.mod 文件
environment.env 文件
项目结构
1234slacktool|---main.go|---go.mod|---environment.env
添加 go.mod 依赖添加两个依赖:godotenv 和 slack。
12345678module github.com/forfreeday/slacktoolgo 1.17require ( github.com/joho/godotenv v1.4.0 github.com/nlopes/slack v0.6.0)
添加后 ...
rust-所有权
所有权所有权(系统)是 Rust 最为与众不同的特性。它让 Rust 无需垃圾回收(garbage collector)即可保障内存安全。所有权以及相关功能:借用(borrowing)、slice 以及 Rust 如何在内存中布局数据。
所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,如: java、python;在另一些语言中,程序员必须亲自分配和释放内存,如:C/C++;
Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。
内存与分配Rust 的所有权围绕着内存分配进行,Rust 对内存管理通过其所有权展开。
栈它是一种 后进先出 的机制,类似我们日常的落盘子,只能一个一个向上方,然后从最上面拿一个盘子。一个变量要放到栈上,那么它的大小在编译时就要明确。i32 类型的变量,它就占用 4 个字节。Rust 中可以放到栈上的数据类型,他们的大小都是固定的。如果是字符串,在运行时才会赋值的变量,在编译期的时候大小是未知或不确定的。所以字符串类型存储在堆上。
堆用于编译时大小未知或不确定的,只有运行时才能确定的数据。 ...
GnuPG-2子密钥使用
子密钥主私钥有所有功能,但实际使用中仅用来生成子密钥,要保证主密钥的绝对安全。所以一般只用来生成子密钥,使用子密钥参与工作。即:subkey,可以看到子密钥拥有以下这些功能,除了没有认证功能
类型
认证 [C]
签名 [S]
身份验证 [A]
加密 [E]
主私钥
有
有
有
有
子私钥
无
有
有
有
单一公钥机制对于服务端的验证特别友好,无论用户有多少个子密钥,服务器只需要一份证书(公钥)就够了,而不需要额外开销,去查询这份证书是哪个上级签发的。什么叫单一公钥机制?就是主密钥生成一个公钥,所有的子私钥都可以对这个公钥进行签名、身份验证、加密操作。
生成子密钥子密钥可以指定上面的:[S]、[A]、[E] 的功能,可以全部拥有,也可以功能独立,取决于在添加时的指定。
1gpg --expert --edit-key [用户ID]
参数说明:
--expert:进入gpg命令模式--edit-key:操作用户ID
输入addkey,添加子密钥,选择一种加密模式,选 4
12345678910111213gpg> addkey请选择您要使用的密钥类型: (3 ...
GnuPG-1主密钥使用
简述GnuPG,简称GPG,是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 订定的 OpenPGP 技术标准设计,并与 PGP 保持兼容。
功能
能力
说明
[C]
Certificating
认证 / 给其它证书签名
[S]
Signing
签名
[A]
Authenticating
身份验证
[E]
Encrypting
加密
GPG 密钥的能力中, [C]、[S]、[A] 均属于签名方案,只有 [E] 是加密方案。一个主密钥,可以绑定若干个子密钥;这些子密钥有的具备加密功能,有的具备签名功能。可以理解为,主私钥就是用来生成多个子密钥来使用,而子密钥丢失可以随时废弃,主密钥生成新的子密钥来使用。
安装官方下载地址:https://www.gnupg.org/download/index.en.html
centOSCentOS 默认已经安装了 gpg2
1gpg --version
如果需要手动安装,在http://rpmfind.net/ 搜GPG下载:
12wget http://rpmfi ...
随笔--2022-2023总结
起点说是总结,其实是吐槽。写了这么些博客,很少说跟技术无关的博客。2022已经完结,这一篇过去了,2023年是一个新的起点,一切都会从新开始,我也一样。在2022之前的不完整,都留在过去,在这一个新的起点,告别过往,重新开始,回归自己应有的状态。
谷底2023之前的感想。2020年之前,是最好生活状态。每天能够边工作边学习边生活,即便是996也是一种很好的状态,每天都在进步,不论是工作、还是生活。就像跟代码热恋,走到哪满脑子都是代码,就差跟代码生猴子。每天处在一种打鸡血的状态,没事也要找点问题出来,大嗓门就怕大厦楼下保安不知道楼上有我这号人物。在公司能搞定一切和不要脸。
直到这个过程被打破。
之后两年感觉像是,在一个泥潭中,越用力陷的越深,一点一点往下拖。
2020年,人生中的一个大低谷,并不是因为疫情,而是人和事,我发现除了代码之外,很多事我控制不了。疫情对我来说,除了担心身边的人之外,需要戴口罩这件麻烦事,其他的没有什么影响。前半年的人与人之间折腾,让我身心俱疲,从生活漫延到工作,工作实在进行不下去,也没法工作,干脆给自己放个长假,在家躺了一段时间。逃避虽然不能解决问题,但是有用, ...
rust-vim整合基于rust-analyzer
前言在vim上配置并使用rust的vim开发环境,我个人比较习惯coc.vim这个平台的一系列插件,所以整个就接着在coc.vim上构建rust-vim,谁叫这东西确实牛逼。依赖插件:
coc.vim
coc-rls
coc-rust-analyzer
rust官方有提供一个vim的插件,但是功能比较简单,本节要说插件,并不是官方提供的vim插件,而是比官方提供插件功能还要强一些。而coc-rust-analyzer这个插件的是基于rust-analyzer这个插件,coc.vim将期进行vim化,记其可以工作在vim下,这个和vim-go插件的做法是一样的。
安装 coc-rls需要提前安装好rustup,这个工具其实在装rust的时候就已经安装好了。
12345# 安装依赖组件rustup component add rls rust-analysis rust-src# 安装 coc-rls:CocInstall coc-rls
安装coc-rust-analyzer1:CocInstall coc-rust-analyzer
初次打开,会有这样的提示,安装一下:
配 ...
Mac m2自动登陆跳板机脚本
需求需求很简单,通过脚本自动登陆跳板机。因为最近换的是mac M2,然后碰到了一堆问题。
问题从intel芯片换到m2出现很多问题。首先mac m2 没有python2,默认是python3,所以脚本的命令要调整成python3相关的。然后是 ssh 登陆,原来正常可以登陆方式也有问题,默认的ssh密钥失效,需要替换成新的密钥。就导致原来的免密登陆也失效了,添加了公钥,依然需要输密码,下面的脚本,有一段是补偿输入密码的操作,如果不需要,可以删了输密码的部份。
自动登陆脚本需要准备两个脚本:
login.sh, shell 脚本
jump.python, python3脚本
1234567891011121314#!/bin/shexpect -c "set pwd you_pass_wordspawn ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa test@10.10.10.10set timeout 2expect "*assword:*"send \&quo ...
Merkle Tree、Merkle Patricia Tree
前言如果是接触区块链开发相关的话题,Merkle Tree 是一个必需要了解的话题。BTC和ETH都使用这项技术,但是数据结构不同。应用侧重点也不同。
用意Merkle tree
注意这里的虚线,最后的叶子节点是真正挂数据的节点。
Merkle Patricia TreeTODO
以太坊 Merkle Patricia Tree 应用参考链接https://en.wikipedia.org/wiki/Merkle_tree
ethereum-geth常用操作
前言eth已经2.0了,但是1.0除了挖矿之外大部分功能都还是一样的。
geth 能做什么
与eth链交互:console
查看区块链状态
管理账号: personal
发送交易:
挖矿 miner
交互操作: console通过console启动,可以进行一系统的操作。
1.连接eth主网默认连接最新的主网。
--datadir: 数据存放目录,不指定默认:/home/$user/.ethereum
1geth --datadir /data/geth --goerli console
2.连接eth测试网--goerli: 加入 goerli测试网--rpcapi: 开启rpc服务,开启后才可以进行操作
1geth --datadir "/data/geth" --rpc --rpcport 8545 --rpcapi "personal,eth,net,web3,admin" --rpccorsdomain "*" --goerli console
节点管理: admin自己搭建节点,第一步是要能使用,如果不 ...