群内分享
1.二师兄分享-智能合约编写注意事项
3.开发实战|如何用15行代码发布 token(附操作视频)
群内讨论
1.关于论坛屏蔽帖子-区块链能做什么
论坛中发一些帖子,经常会因为一些特殊原因被封,那么把帖子放到区块链上面,内容会一直存在,因为区块链的特性无法删除,那么区块链通过P2P的网络方式,也需要端口通信,帖子无法被删,数据在每个全节点都会保存完整一份。但是通过封闭特殊端口,也可以达到一定的效果。但和一些常见论坛中删除则不一样。屏蔽和删除是两个概念。
比特币相关概念
bitcoin采用P2P的网络架构。
P2P:(之前文章有专门写过P2P网络架构的内容可参考)在同一网络环境中节点之间彼此对等,每个节点都提供网络服务,没有所谓的“特殊”节点,网络节点以一种扁平化的拓扑互相连接,不存在传统的服务端、中心化的服务节点、网络层级结构。整个网络交付运作,协同处理。每个节点在对外提供服务,同时也使用其他网络节点的服务。P2P网络具有去中心化的特点,在互联网建立初始,P2P就是最为普遍的一种典型架构,节点之间权利和义务对等,在文件共享中最为常见(P2P下载应该都接触过)。
Bitcoin网络:bitcoin网络是在P2P协议下运行的一系列节点的集合,当然bitcoin网络协议中不单单P2P协议。
Bitcoin节点:bitcoin网络中节点之间互相对等,节点由路由、区块链数据库、挖矿、钱包的功能集合。
Bitcoin节点具体功能:每个节点都参与全网的路由功能。一部分节点保存一份完整的区块链数据,称为全节点,全节点可以独立自主的验证所有交易,一部分节点通过(SPV)简易支付验证,称为轻量级节点,该节点没有完整的数据拷贝。挖矿节点,一般是特殊硬件运行工作量证明(POW)算法,通过竞争方式挖矿产生新的区块,打包交易获得bitcoin奖励,挖矿节点可以是全节点也可以通过参与矿池的轻量级节点,但需要依赖矿池服务器维护全节点才能进行正常运行。钱包一般都是SPV节点。
Bitcoin网络扩展:bitcoin网络中运行特殊协议的网络节点,P2P主网络中连接许多矿池服务器以及协议网关。包含了多种类型的节点、网关服务器、边缘路由器、钱包客户端等相关链接协议。
网络发现:在bitcoin网络中加入一个节点,必须和其他节点互通,建立连接,一般采用8333端口和对等节点建立连接,过程如下:
nVersion定义客户端所发布的bitcoin的P2P协议版本。
nLocalServices一组该节点支持的本地服务列表。
nTime当前时间。
addrYou当前节点可见的远程节点的IP地址。
addrMe本地节点的本机IP地址。
Subver当前运行软件类型的子版本号。
BaseHeight当前节点区块高度。
版本消息是节点进入网络发送给对等节点的第一条消息,确认版本时候兼容,版本确认后发送一个verack建立连接。在寻找新的对等节点的时候,使用多个DNS种子来查询DNS,DNS服务器提供bitcoin的IP地址列表。Bitcoin core客户端包含五种不同的DNS种子名称,使用DNS种子选项由switch–dnsseed控制。
在连接上一个bitcoin节点的IP地址后:通过-seednode参数连接,仅用于为种子,nodea-version-nodeb、nodeb-verack-nodea、nodeb-version-nodea、nodea-verack-nodeb。当建立一个或者多个连接后,新节点将一个包含自身IP地址的addr发送给相邻节点,相邻节点依次传播其他相邻节点:nodea-addr-nodeb、nodea-getaddr-nodeb、nodeb-addr-nodea、nodeb-addr-nodea、nodeb-addr-nodea。节点连接到不同对等节点,节点主要作用:在失去已有连接时发现新节点,并在其他节点启动时提供相关信息,节点启动时候只需要一个连接,因为一个节点可以通过引荐方式到其他对等节点,不停重复该过程。当重启启动时候发现原先节点没有应答,那么可以通过使用种子节点重新启动。通过-connect=选项来指定一个或者多个IP地址。
全节点:全节点的意义就是包含全部交易信息的完整的区块链的节点,完整区块链节点包含完整的信息,独立进行建立或者校验区块链,包括从创世区块到最新区块,完整区块链节点可以独立校验交易信息,但完整区块链需要永久存储来保存数据和交易信息,故对本地硬件存储资源有一定要求。
库存清单:全节点接入网络,需要构建完整的区块链,那么数十万区块内容需要同步,在发送同步请求中包含一个bestheight字段标示当前区块的高度,对区块数量进行比较。然后交换一个getblocks消息,包含本地区块最顶端的hash值,通过比较验证本地的区块链时候最新。一旦不是最新区块那么需要补充,类似一种增量的概念,通过inv消息把hash值传播,缺少区块的节点通过getdata消息请求全区块信息。假设一个节点离线了一段时间,那么发送getblocks消息,收到inv响应,继而下载缺失区块。Nodea-getblocks-nodeb、nodeb-getblocks-nodea、nodeb-inv-nodea、nodea-getdata-nodeb、nodeb-block-nodea。
群内工作
磨链(mochain)社区输出计划
招募条件:
1.需要一定的区块链基础。
2.对上述任何一方面有较为深入理解。
3.每周能保证一定的空余时间来折腾。
4.了解github相关
5.人员进行筛选,时间周期比较长。
有意向联系我。
磨链在线课程
对自己擅长方面有一定的沉淀,愿意开设在线课程,会考虑和一些专业培训机构合作,要求有一定的一线经验,实实在在分享课程。有兴趣的联系,有偿工作。
磨链(mochain)社区内容输出计划
磨链社区内容输出计划,社区内划分6个模块,针对各模块细化分解,社区成员领取任务进行写作内容输出。审核通过后发布,整个过程中即是自己的一个学习提高,同时也有交流分享,模块如下:
1.区块链基础(包括密码学、共识机制、分布式、P2P网络等)
2.以太坊(入门到精通,循序渐进学习以太坊)
3.比特币(入门到精通,比特币相关内容深入琢磨)
4.超级账本(架构、运行原理、共识机制、环境搭建配置开发相关)
5.EOS(概念介绍,由浅入深,持续学习)
6.DAG(DAG的概念、原理机制、项目技术解读)
PS:想加入磨链的,或者具体参与到磨链社区内容输出计划的,请加磨链组织者微信(jackyjin09)。欢迎每一位区块链技术爱好者加入磨链,一块琢磨区块链技术。
关于磨链和相关合作
磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨区块链技术,联系笔者微信(jackyjin09)。
磨链社区是一个纯粹的技术社区,欢迎相关技术合作,在不违反原则的前提下,积极参与合作。
你可以在这里找到我们:
磨链社区公众号:
1. 磨链社区:http://mochain.info
2. Github : https://github.com/mochain
3. Gitter 聊天: https://gitter.im/mochain
4. 知识星球: https://t.zsxq.com/M3BMVZN
5. 知乎:https://www.zhihu.com/people/mochain
(持续更新中)
合作社区
网友评论