树图区块链学习
树图区块链基本结构1.每个区块只有一条父边指向父区块;
2.每个区块可能有多条关联边指向“happen-before” 关系的区块;
确定区块链的主链1.从创世区块开始;
2.迭代深入选择最重的分支作为主链。
比如这个区块链中,子树A所在分支即为区块链主链。
创建一个新的区块到区块链中1.选择主链中最新的区块作为父区块;
2.对所有还未引用的区块(没有任何的入边)创建引用边
利用局部顺序确定总体顺序先是将每个区块划分到epoch中:
1.每一个主链上的块构成一个epoch;
2.每个非主链的块属于第一个在该块之后生成的主链块的epoch;
例如:
确定总体顺序:
1.对区块链划分epoch,区块所在epoch越早,整体顺序越靠前;
2.对每个epoch内部的区块排序,根据“happen-before” ,即引用边的关系;
确定所有交易顺序:
1.所有区块顺序确定后即可排出所有交易顺序;
2.去除所有交易中的冲突交易和重复交易;
密码学基础
MD5: 求校验和,不是加密算法,内容相同的文件校验和相同
空文件的MD5:
SHA:
空文件的SHA
利用管道可以直接看到字符串的md5值:
校验和可以用来检验文件是否为官方发布:
区块链
nodejs实现http服务器
http服务器基础代码123456var http = require('http')http.createServer(function (req, res) { res.end();}).listen(8000, '127.0.0.1')
注意其中res.end()一定不能缺少,否则服务器会以为请求没有结束,一直处于等待状态。
启动服务器
解析表单Get请求引入url模块12345678var http = require('http')var url = require('url')http.createServer(function (req, res) { var uu = url.parse(req.url) console.log(uu) res.end();}).listen(8000, '127.0.0.1')
发起请求
打印结果:
所以用
1url.parse(req ...
Go语言学习
Deepin安装Go开发环境1.Go安装包下载到Go语言中文网下载Go安装包 go1.15.6.linux-amd64.tar.gz
2.解压安装Go解压Go安装包 go1.11.5.linux-amd64.tar.gz
1tar zxvf go1.15.6.linux-amd64.tar.gz
tips:
我这里将安装包直接解压到了自定义目录中,linux系统一般还有如下的目录可以用于存放自己安装的软件的文件夹,放在如下目录中时后续命令需要对应改变。
/usr : 系统软件安装目录
/usr/local : 用户软件安装目录
/opt : 大型软件安装目录
3.配置环境变量1vim ~/.bashrc 或者 vim ~/profile
(bashrc对系统所有用户有效,profile对当前用户有效)
这里我用的profile
三个变量GOPATH、PATH、GOROOT:·GOROOT就是go的安装路径;·GOPATH就是go的工作目录;·PATH是go安装路径下的bin目录。
让更改的环境变量进行生效,在终端中输入以下命令内容:
1source ...
python实现团队游戏小程序
大学经常组织你画我猜游戏,这次学习python正好写了一个游戏自动发题和记分,只需要维护题库就行。直接上源码tinyGame.py。
运行时用
1python3 -u tinyGame.py
执行
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917 ...
python 学习--基础学习
背景来历Python的创始人为荷兰人吉多·范罗苏姆 (Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC(为非程序员设计的语言,非开放)语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)。
自从2004年以后,python的使用率呈线性增长。Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。
2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。
语言风格Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
Python的作者有意的设计限制性很强的 ...
linux 安装nodejs
1、下载解压
官网https://nodejs.org/en/download/ 下载已编译好的版本(Linux Binaries (x64)),或直接#wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
#tar xf node-v12.16.1-linux-x64.tar.xz
#cd node-v12.16.1-linux-x64
#./bin/node -v 查看node版本
2、设置软链接
此时若直接在终端输入node -v,则显示node命令不存在,这是因为/usr/local/bin文件夹中还没有node,因此需要设置软链接。
ln -s home/usrname/node-v12.16.1-linux-x64/bin/node /usr/local/bin/ (node命令)
ln -s home/usrname/node-v12.16.1-linux-x64/bin/npm /usr/local/bin/ (npm命令)
此时,node和npm安装完成!终端输入node -v或np ...
bash:xxx未找到命令--建立linux软链接
bash: node: 未找到命令
安装nodejs和npm时,到官网下载完安装包解压后,直接输入node -v和npm -v会报bash: node(npm):未找到命令,此时需要建立软链接,类似windows下的环境变量
1sudo ln -s 源路径 系统路径
此时再全局查看node -v和npm -v 就不会有问题了。
bash: hexo: 未找到命令安装完hexo后,又提示未找到命令,按照之前的方法,再次为hexo建立软链接即可。
1sudo ln -s /home/zhm/program/node-v14.15.1-linux-x64/bin/hexo /usr/local/bin/
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
创建新文章1$ hexo new "学习笔记"
hexo插入图片
1.把主页配置文件_config.yml 里的post_asset_ ...
windows笔记本下ubuntu双系统安装
制作ubuntu启动盘
首先进入 Ubuntu 官网下载 Ubuntu20.04.1 ios 镜像包,下载的镜像包为:ubuntu-20.04.1-desktop-amd64.iso
然后通过刻录软件将镜像刻录进U盘中,所有双系统的安装都差不多是这个过程,这里就不做赘述,详细过程可见链接。
利用制作启动盘的时间,我们顺便为ubuntu 的安装准备一个空的盘符,独立安装ubuntu系统,以免安装系统后影响到我们windows中原有的数据。具体过程为:
右键点击我的电脑;
点击管理;
选择磁盘管理;
找到一个需要分出空间的盘符,比如F盘;
右键点击该盘符;
选择压缩卷;
输入需要压缩的大小,即为ubuntu系统准备的大小,比如128G,则需要输入131072MB(128*1024);
点击确定,等待系统完成分盘即可。
启动盘制作完成后,重启电脑,将U盘插到电脑上,按F12进入BIOS模式(我的电脑是DELL的,不同厂商电脑可能不同,具体可以百度搜索自己的电脑如何进入BIOS)
系统安装1.在BIOS中选择以U盘方式启动系统后,进入系统安装界面。
下面截图仅说明关键步骤,其他 ...