区块链学习笔记Day3:以太坊背后的密码学
学区块链做的笔记Day3,大部分内容来自《精通以太坊》。
PS:这里的代码基本上都是用crypto来写的,但是从官方的文档里可以看到ERCs/ERCS/erc-55.md at master · ethereum/ERCs (github.com),官方提供了eth_utils的库。
1pip install eth-utils -i https://pypi.tuna.tsinghua.edu.cn/simple
椭圆曲线密码学的基本概念
以太坊使用跟比特币系统相同的椭圆曲线算法,称为secp256k1,由NIST设定。
椭圆曲线密码学是基于离散对数问题的非对称密码学(也成为公钥密码学),它是基于椭圆曲线上点位的加法和乘法的不可逆特性。
secp256k1曲线由下列函数定义,这些函数生成了椭圆曲线:
y^2=(x^3)\ \rm over\ (\mathbb F_p)或
y^2\ \rm mod \ (p) = (x^3+7) \ \rm mod \ pmod _p_ (素数的模)表示曲线位于素数阶_p_的有限域中,这也可以表示为\mathbb F_p,其中的p=2^{25 ...
Kubernetes学习Day1
学Kubernetes做的笔记Day1,大部分内容来自《Kubernetes快速入门》。
Kubernetes简介从 本质上说,Kubernetes是云原生 微服务应用的编排器。
微服务: 微服务应用是由很多小型专用部件组成的,这些部件被松散地耦合在一起,形成一个有用的应用。
云原生: 一个云原生应用必须能够:
按需扩缩容;自我修复;支持零停机时间滚动更新可以在任何有Kubernetes的地方运行
编排器: 编排器将一组微服务聚集在一起,并将它们组织成一个能创造价值的应用。它还能提供并管理云原生功能,如扩缩容,自我修复和更新。
Kubernetes的一些优点:
可以部署时随时在不同的云间进行切换;
可以实现多云;
可以更轻松地在云和本地之间过渡;
Kubernetes集群构成一个Kubernetes集群是一个或多个安装了Kubernetes的机器。
我们通常把Kubernetes集群中的机器成为节点,Kubernetes集群有两种类型的节点:
主节点;
工作节点;
主节点托管这控制面板,工作节点是运行用户应用的地方。
主节点运行以下服务,它们共同组成了控 ...
区块链学习笔记Day2:以太坊客户端
学区块链做的笔记Day2,大部分内容来自《精通以太坊》。
全功能节点的好处和弊端好处:
为以太坊的可扩展性和防审查机制提供更强的支持。
可信的验证所有交易。
可以跟以太坊主网上的所有合约进行交互,并不需要任何中间角色。
可以在以太坊主网上直接部署合约,并不需要任何中间角色。
可以在需要时离线查询(只读形式)区块链的状态,例如:账户,合约。
弊端:
需要大量并且不断增长的硬件以及带宽资源。
需要数小时甚至数天的时间才能完成区块链数据的同步。
必须持续地维护,升级,保持节点在线才能保证区块链数据的同步。
公共测试网络的好处和弊端好处:
测试网络节点只需要同步和保存大约10G的区块链数据(2018年4月)。
测试网络节点的区块数据同步只需要数小时就能完成。
在测试网络上部署合约或发起交易所需要的以太币是没有成本的,(可以免费获取)。
测试网络是一个包含众多其他用户和合约的正在实际运行的公共区块链。
弊端;
不能测试网络上使用真实以太币。同样,无法在测试网络上检测安全性,因为并没有黑客对这些没有价值的交易和合约感兴趣。
有些针对主网功能的测试无法在测试网络上完成,例如:交易手续费(虽然 ...
区块链学习笔记Day1:简单智能合约实现
学区块链做的笔记Day1,大部分内容来自《精通以太坊》。
区块链的组件一个公开的公共区块链通常包含以下组件:
一个连接参与各方的点对点网络,用于传播交易和区块数据包,基于标准的“gossip”协议。
以交易形式体现的消息,代表状态的转换。
一组共识规则,用于管理构成交易的内容以及实现有效的状态转换。
一个状态机,根据共识规则交易。
一组串联在一起的、由加密算法保证其安全的区块,这些区块是所有已验证和已接受的状态转换的记录日志。
一个共识算法,用于在区块链上实现控制的去中心化,这类算法通过强制参与者之间的合作以实现共识规则的有效执行。
在博弈论上合理的激励方案(列如:工作量证明、区块奖励),以在开放环境中经济地保护状态机。
上述一个或多个开源软件实现(客户端)。
以太坊的组件
点对点(P2P)网络以太坊运行在Ethereum Main Network上,这是一个通过TCP 30303端口寻址的网络,网络层运行的协议名为-DΞVp2p。
共识规则以太坊的共识规则,由以太坊黄皮书(见后文中的“扩展阅读”)中的参考标准进行精确定义
交易以太坊交易是一个网络消息,主要包含交易的发送方、 ...
搭建jupyter服务器
随时随地访问jupyter,畅享加班生活。
1.准备
一台服务器
2.在服务器上开启服务这个网上教程太多了,就不讲了
正常开启是这样的
可以看到它开在了本地
3.查看配置文件地址
写完了看别人博客的时候才发现根本不用这么麻烦
直接
1jupyter notebook --no-browser --ip 0.0.0.0
就可以把jupyter开在服务器上
直接就可以跳过3、4、5步
在控制台输入
1jupyter notebook –generate-config
如果是首次输入会在默认目录下生成jupyter的配置文件
如果已经有配置文件了就会询问是否覆盖,同时也会显示出文件的地址
4.编辑配置文件1vim /root/.jupyter/jupyter_notebook_config.py
查找c.NotebookApp.ip
把前面的注释去掉,然后改为
1c.NotebookApp.ip = '0.0.0.0'
保存退出
5.启动jupyter
可以看到这里已经变成了主机名
这时候去防火墙放行端口就可以在服务器上访问jupyter了
记得带上toke ...
第一篇博客
先记录下怎么使用吧,免得下次忘记了
本地启动服务123hexo server [-p 5000]hexo g # 生成页面hexo s # 启动预览
上传到github1hexo d
新建文章/页面12hexo new "name" # 新建文章hexo new page "name" # 新建页面
发布文章可以把.md文件放在source/_posts目录下
清除缓存文件1hexo clean