Web3学习

区块链技术与应用 引言 区块链不止是比特币,不要被比特币限制想象 1.1 BTC密码学原理 比特币被称为加密货币,但是加密货币是不加密的,区块链所有内容都是公开的,例如转账金额,账户地址 使用到两种哈希函数 cryptographic hash function collison resistance (哈希碰撞) 哈希碰撞 :x ! = y, H (x) = H (y) 一般来说,哈希碰撞是不可避免的,因为输入空间远大于输出空间(没有什么高效的方法使得哈希人为碰撞 collison resistance的性质:找不到H(m’) 与之相同 H(m) 与 digest 如果有人修改H(m),哈希值就会被修改 没办法篡改内容而不被检测 (类似刷机时的检验md5值)(md5就是哈希的一种,不够已经不再安全了) x 可以推出 H(x),但是反之不行 hiding:hash函数的计算过程是单向的,是不可逆的。给定一个输入X,可以计算其hash值 H(X),但是通过H(X),很难知道其输出为X。当然蛮力求解也是一个办法。hiding性质的前提是:(1)输入空间较大;(2)输入的分布比较分散。 digital commitment(digital equivalent of a sealed envelope):通过collision resistance和hiding的性质,就可以得到digital commitment这个性质。 举例:想要预测股市,但是又不能影响,只能把结果放在信封里面。 预测结果不能提前公开,就需要用到sealed envelope(密封信封),把 x 算出的哈希值公布出去,因为有哈希hiding的性质,又有collison resistance的性质,就能做到预测股市但是又不影响 如果输入不满足hiding,常用把输如拼接随机数再哈希 H( x || nonce) puzzle friendly: 要想使得计算得到的hash值在某一个范围之内,则只能够一个一个的输入去尝试,很难直接找到某个值使得其hash值在某一个范围内。挖矿 也是就是这个意思。挖矿就是把区块中的一些信息+随机数进行hash,使得其结果前K位数为0,才能够满足要求。挖矿无捷径,只能够去大量的试。所以也就产生了 工作量证明(POW)。 工作量证明(POW) 就是做了大量的尝试之后,才得到符合要求的结果,这个过程叫做工作量证明。proof of work H(block header) <= target...

March 30, 2023 · 2 min · 395 words · LOTU$

Hugo+Github Pages搭建

在跟随网上的教程搭建中,我发现了许多的问题,所以决定自己写一篇搭建教程 我会把自己遇到的问题详细的列出来,并给予解决方案 第一步,安装Hugo 1.浏览官方的使用指南 本次部署使用的是Windows系统 如果你对操作有些困惑,这份指南有对其他系统如何安装Hugo的详细说明 在这里我选择了使用对新手比较友好的方式,从GitHub主页下载zip包下载后添加到环境变量 找到并点击Releases选择适合自己的安装包 Windows系统选择带有Windows字样的安装包 下载后解压到适合的文件夹,找到bin文件,复制路径到环境变量中 至此,Hugo就安装完毕了! 第二步,新建一个Hugo网站 1.进入你想存放Hugo网站文件的文件夹,在文件夹下使用终端(cmd)执行以下命令新建一个Hugo网站 1 hugo new site myblog # "myblog" 是我的网站文件夹名 2.选择Hugo主题并克隆至本地目录 打开 Hugo Themes 页面,选择一个你喜欢的主题 我选择的是PaperModX主题 进入themes文件夹 将所选主题克隆到本地(themes文件夹下) 点击复制按钮,执行 1 git clone 复制得到的链接 clone成功后,还需要修改文件夹名为你的主题名才可正常运转,在这里我修改文件名为PaperModX 3.编辑配置文件 编辑文件是Hugo自定义的灵魂所在,值得各位研究,官方提供了英文文档,更有第三方的中文文档,也可以仿照他人的范例进行修改, 4.新建一篇文章 进入网站文件夹的根目录 使用以下命令新建一篇文章 1 hugo new post/my-first-post.md # "my-first-post.md"是新建文章的文件名 这里我采用另一种方法,来自这位大佬的博客 思路是每一篇文章都创建一个新的文件夹,将所需要的图片放在文件夹下 而不用使用Hugo传统的把图片放在其他文件夹,方便了引用 注意:文件夹下的文章需命名为index.md,否则无法识别 5.编辑新建的文章,添加内容并保存 6.本地预览网页效果 启动Hugo server 1 hugo server -D 使用浏览器打开 http://localhost:1313 预览 如果你对预览效果满意,进入下一步。 如果不满意,编辑 config.toml 配置文件,再次预览。 在对你的网站满意后,可以进行上传到Github Pages了 第三步,上传到Github Pasges 1.新建一个Github库...

March 17, 2023 · 2 min · 280 words · LOTU$

Linux学习🐧

Linux课程 1.1初识Linux 具有商业能力的并且免费的Linux是Centos 各种认证: RHCE红帽认证 Linux系统部署–获取linux常用发行版的方法 为了方便传输,压制成ISO文件 1.2文件管理 Linux目录结构视图 系统目录(文件夹) Bin:binary二进制 **Boot:**启动相关的文件 **Dev:**device设备 **Etc:**配置文件(控制台文件 **Home:**装用户自己的文件 **Run:**运行目录 **Sbin:**temp **Usr:**应用程序 Linux 命令语法 cd ls pwd 命令 选项 参数 ls -l /(默认显示根目录的内容) 文件管理命令 ls -l 改变命令 cd 绝对路径或相对路径 cd 绝对路径 cd /home/alice cd 相对路径 cd . .. .创建文件 ls 列出目录当中的内容 举例说明 ls / 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 -a, --all 不隐藏任何以....

March 15, 2023 · 25 min · 5165 words · LOTU$