分类目录归档:分享

Bittorrent协议


BitTorrent协议由布拉姆·科恩(Bram Cohen)于2001年创建

BitTorrent (简称 BT) 协议是一种点对点 (Peer-to-Peer, 或简写为 P2P) 传输协议, 它被设计用来高效地分发文件 (尤其是对于大文件、多人同时下载时效率非常高)

BitTorrent 协议是架构于 TCP/IP 协议之上的一个P2P文件传输通信协议,是一个应用层协议

文档:BitTorrent.org

传统http和ftp下载文件的问题:

  • 服务器的带宽通常都是有限
  • 默认没有端点续传
  • 无法批量下载

BT协议的优势:

  • 每个人都可以下载和上传,减轻了单个服务器的负担
  • 有很强的鲁棒性,

Read more

零知识证明与代码实现


零知识证明定义

以图染色为例子进行说明。证明者可以向验证者证明其知道一个图的有效着色,而不透露它。为了做到这一点,两方执行一个游戏,由证明者用一组随机的颜色给图形上色,然后覆盖它,验证者随机选择一条边。如果证明者的着色是有效的,那么由这条边连接的两个节点必须具有不同的颜色。然后重复,每次换一套不同的颜色,直到验证者相信证明者知道图的有效着色。由于证明者在每一轮之前重新绘制图形,所以验证者不会了解任何有关着色的信息,但验证者可以验证每次都是有效的。 零知识证明比较著名的案例为区块链系统中的数字签名,由证明者产生一个证明来使其他人知道其拥有一个私钥,具体方案是通过私钥对一个消息进行加密,再公开公钥

Read more

用于半监督医学图像分割的多模态对比互学习和伪标签再学习


Multi-modal constrastive mutual learning and pseudo-label re-learning for semi-supervised medical image segmentation

用于半监督医学图像分割的多模态对比互学习和伪标签再学习

Journal: [ELSEVIER: Medical Image Analysis] (中科院分区一区top,jcr分区Q1) Author: Shuo Zhang, et al. Hebei University of Technology, China Code Link: https://zhengh

Read more

IPFS 星际文件系统


IPFS 星际文件系统

IPFS(Interplanetary File System,星际文件系统),是点对点(peer-to-peer,简称 p2p)文件共享系统。

IPFS = 公私钥 + Git + bit下载

IPFS 本质上是版本化的分布式文件系统,能够接收文件并管理它们,也可以把它们存储在某个地方,然后随着时间的推移,跟踪它们的版本。IPFS 也记录了这些文件在网络中的移动方式,因此,它也是个分布式文件系统。

IPFS组成部分

分布式哈希表DHT(承担路由功能)

代码演示:https://gitee.com/wujian2023/go-libp2p-dht-demo.git

哈希

Read more

分布式哈希表DHT


哈希表 是一种数据结构,它以键值对来存储信息。

在分布式哈希表(distributed hash tables,简称 DHT)中,数据分布在计算机网络中,以便有效地协调以实现节点之间的有效访问和查找

DHT 的主要优点在于去中心化、容错和可扩展性。节点无需中心协调,系统能够可靠地运作,即使节点发生故障或下线。并且,DHT 能够扩展以容纳数百万个节点。基于这些特性,使得 DHT 比中央服务器的结构更具有弹性。

分布式散列表本质上强调以下特性:

  • 离散性:构成系统的节点并没有任何中央式的协调机制。
  • 伸缩性:即使有成千上万个节点,系统仍然应该十分有效率。
  • 容错性:即使节点不断地加入、离开或是停止工

Read more

区块链原理及代码实践9-PoS算法


POS 共识算法

1. POW有什么问题?

PoW其实就是由所有的节点相互竞争,提交一个难于计算但是容易验证的计算结果,任何节点都可以验证这个这个结果的正确性。但是,

  1. PoW极度浪费算力,只有挖出区块的节点算力有效,其他节点算力都作废。
  2. PoW除了使恶意攻击者不能轻易地伪装成几百万个节点和打垮比特币网络,并没有更多实际或科学价值
  3. 随着比特币产量的不断降低, 矿工人数也会越来越少, 比特币网络的健壮性会越来越低。

鉴于以上问题,POS股权证明诞生了。

2. POS股权证明

权益证明( Proof of Stake,PoS) ,最早在 2013 年被提出,最早在 Peercoin 系统中被实

Read more

比特币原理及其代码实践8-比特币网络


引言

​ 我们所构建的原型已经具备了区块链所有的关键特性:匿名安全随机生成的地址(公私钥加密)区块链数据存储(key-value存储)工作量证明系统(pow)可靠地存储交易(MerkleTree)

​ 尽管这些特性都不可或缺,但是仍有不足。能够使得这些特性真正发光发热,使得加密货币成为可能的,是网络(network)

​ 你可以将这些区块链特性认为是规则(rule),类似于人类在一起生活,繁衍生息建立的规则,一种社会安排。区块链网络就是一个程序社区,里面的每个程序都遵循同样的规则,正是由于遵循着同一个规则,才使得网络能够长存。类似的,当人们都有着

Read more

比特币原理及其代码实践7-Merkle树


回忆:前面说过,比特币交易的解锁和上锁其实是一种基于堆栈的脚本语言,大家可以想一下,这种脚本语言还能干什么?

比特币的脚本语言启发了太坊创始人Vitalik Buterin(那年他20岁)创建以太坊,开发了智能合约。

全节点和轻节点

因为比特币的去中心化特性,网络中的每个节点必须是独立,自给自足的,也就是每个节点必须存储一个区块链的完整副本

随着越来越多的人使用比特币,这条规则变得越来越难以遵守:因为不太可能每个人都去运行一个全节点。并且,由于节点是网络中的完全参与者,它们负有相关责任:节点必须验证交易和区块。另外,要想与其他节点交互和下载新块,也有一定的网络流量需求。

对这个问题也有一个解

Read more

Graph neural network —— 图神经网络简单介绍


一、图的基本结构

1. 图的基本结构

要了解图神经网络,首先要了解图。图是由节点和边组成的,如下图所示。一般图中的节点表示实体对象(比如一个用户、一件商品、一辆车、一张银行卡等都可以作为节点),边代表事件或者实体之间的特殊关系(比如用户和商品之间的购买关系)。边可以为有向/无向。 在数学中,一般使用邻接矩阵来表示图,如上图右边所示。邻接矩阵中的值为 1 表示节点之间有边,即有连接关系。邻接矩阵能够很好的将图的结构信息表达出来。

2. 图的分类

  • 同质图(Homogeneity): 指图中的节点类型和关系类型都仅有一种。
  • 异质图(heterogeneous): 指图中的节点类型

Read more

比特币原理及其代码实践6-交易签名和解锁


实现签名

交易必须被签名,因为这是比特币里面保证发送方不会花费属于其他人的币的唯一方式。如果一个签名是无效的,那么这笔交易就会被认为是无效的,因此,这笔交易也就无法被加到区块链中。

思考:哪些数据需要签名?

  1. 之前交易的某个输出的公钥hash,也就是我们钱的源头
  2. 当前交易的全部输出,也就是我们把钱转给了谁

签名在哪个地方?

签名在当前交易的每一个输入

伪代码:

func (tx *Transaction) Sign(privKey ecdsa.PrivateKey, prevTXs map[string]Transaction) {
    ...
    //针对每一个输入Vin
   

Read more