- 博客(32)
- 资源 (142)
- 收藏
- 关注
原创 Random Beacon Chain
Random Beacon ChainStatus: retiredAuthors: Raul Jordan, Terence Tsao, Yutaro Mori, Preston Van Loon, Nishant DasPrysmatic LabsLast Updated: July 10, 2018 OUTDATED: See v2.1 designBackgroundThis is a design doc for implementation of the most bas
2021-05-31 16:07:54 473
原创 error: failed to run custom build command for `openssl-sys v0.9.63`
windows下 编译报错error: failed to run custom build command for `openssl-sys v0.9.63`解决办法:1.安装opensslWindows下:https://slproweb.com/products/Win32OpenSSL.html网站下载https://slproweb.com/download/Win64OpenSSL-1_0_2u.exe或https://slproweb.com/dow..
2021-05-26 17:42:13 5078
原创 共识算法分析
POW:Proof of Work,工作证明。比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理ha...
2021-05-19 17:14:49 11247 2
原创 随机数对签名的重要性与伪签名的构造
关于签名算法的一些基本变量定义:G为椭圆曲线 随机值k,R=kG m,待签名消息哈希值 私钥x,公钥P=xG H(),哈希函数 r = R.x,表示r为R的x坐标值Schnorr签名:(R, s) 生成签名:s = k + H(R||P||m)*x 验证签名:sG = R + H(R||P||m)PECDSA签名:(r, s) 生成签名:s = m/k + r/k*...
2021-05-18 10:29:09 871
转载 理解姚氏百万富翁问题
问题:两富人比谁钱多。如何能实现互相保密但可以比出谁钱多?乍一看感觉不是什么特别复杂的问题,比如知乎用户@辰舰长的答案:用天平,每个富商领到一个质量固定的黑箱,让富商在其中放入质量与财富相对应的筹码(例如除以1000000)。放在天平两边看哪边重一点,就酱。但更多的人饮用了文献:Yao, Andrew C. “Protocols for secure computations.” ...
2021-05-18 10:28:33 3702
转载 交叉编译和静态链接 RUST 库
在 CSIS 中,我们过去使用 Python 编写后端,同时为Incident Response Toolkit编写一些 C/C++ 代码。几年前,主要是由于性能原因,我们开始用 Rust 替换 Python 重写了一些特定的后端服务,并取得了巨大的成功。现在,为了便于开发和测试,我们正在探索将 C/C++ 代码库的某些部分也迁移到 Rust 的方法。为了做到这一点,我们决定尝试将Rust集成到现有的代码库中,而不是一次重写所有内容。下面是我们实验的摘要,以及编写一个Rust库并从 C/C+..
2021-05-18 10:27:57 785
原创 rust 模块组织结构
rust有自己的规则和约定用来组织模块,比如一个包最多可以有一个库crate,任意多个二进制crate、导入文件夹内的模块的两种约定方式… 知道这些约定,就可以快速了解rust的模块系统。先把一些术语说明一下:包是cargo的一个功能,当执行cargo new xxxx的时候就是创建了一个包。crate是二进制或者库项目。rust约定在Cargo.toml的同级目录下包含src目录并且包含main.rs文件,就是与包同名的二进制crate,如果包目录中包含src/lib.rs,就是与包同名的库crat
2021-05-18 10:27:38 676
转载 分布式问题分析
参考:https://github.com/CyC2018/Interview-Notebook/blob/master/notes/业务中的分布式:分布式存储:将数据分片到多个节点上,不仅可以提高性能(可扩展性),同时也可以使用多个节点对同一份数据进行备份(高可用性)分布式计算:将一个大的计算任务分解成小任务分配到多个节点上去执行,再汇总每个小任务的执行结果得到最终结果。MapReduce 是分布式计算最好的例子。分布式事务:指事务的操作位于不同的节点上,需要保证事务的 AICD .
2021-05-18 10:27:05 185
原创 Rust:Operators and Symbols
This appendix contains a glossary of Rust’s syntax, including operators and other symbols that appear by themselves or in the context of paths, generics, trait bounds, macros, attributes, comments, tuples, and brackets.OperatorsTable B-1 contains the o
2021-05-17 18:21:55 277
原创 Rust: Keywords
The following list contains keywords that are reserved for current or future use by the Rust language. As such, they cannot be used as identifiers (except as raw identifiers as we’ll discuss in the “Raw Identifiers” section), including names of functions,
2021-05-17 17:28:21 309
原创 Planning the Rust 2021 Edition
Planning the Rust 2021 EditionMar. 4, 2021 · Ryan Levick on behalf ofThe Rust 2021 Edition Working GroupThe Rust 2021 Edition working group is happy to announce that the next edition of Rust, Rust 2021, is scheduled for release later this year. While .
2021-05-17 17:26:53 255
原创 RBFT共识算法
1. 概述共识机制是保证区块链中所有共识节点(即验证节点:validating peer, VP)按照相同顺序执行交易、写入账本的基础,而记账节点(即非验证节点:non-validating peer, NVP)只需要从其所连接的共识节点中同步账本信息,因此无需参与共识。Hyperchain平台支持可插拔的共识机制,可以针对区块链的不同应用场景提供不同的共识算法,当前版本已经实现了PBFT算法的改良算法:高鲁棒拜占庭容错算法RBFT(Robust Byzantine Fault Tolerance)
2021-05-17 14:32:24 9864 13
转载 区块链的技术世界观
区块链领域是一个喜欢造新词的领域,这也给想了解这个领域技术的人造成了门槛。我一直想梳理下区块链的技术演进逻辑,试图从互联网技术的发展角度来解释区块链技术,这样可以让互联网领域的技术人更容易理解区块链。技术有没有世界观?技术本身的目标是对现实抽象和建模,所以技术实际上有自己对世界的理解和假设。比如编程范式里的面对对象和函数式编程,有完全不同的世界观理解。而区块链对世界是一种怎么样的抽象呢?我们还是从萧伯纳那句名言开始。你和我各有一个苹果,如果我们交换苹果的话,我们还是只有一个苹果。但当你
2021-05-17 14:24:02 512
转载 无币区块链代表未来?浅谈联盟链以及对 Hyperledger、 Corda、FISCO BCOS 的比较
本文试图通过联盟链来分析区块链的应用场景。我个人支持任何类型的区块链落地探索,无论是私链,联盟链还是公链。无币联盟链相当于改革派,期望在当前的金融框架内进行技术改革。而有币公链相当于革命派,试图重造一套金融体系。但实际上二者是互相依存的,如果没有公链的压力,改革也很难推动,而如果没有联盟链的改革,未来也很难实现区块链网络的融合以及价值的互通。相关链接区块链的技术世界观微众银行副行长马智涛首提“公众联盟链”畅想Hyperledger 核心开发者陈昌谈联盟链和公有链混合架构如何实现?
2021-05-17 14:22:22 611
转载 分布式基础知识
参考https://github.com/CyC2018/Interview-Notebook/blob/master/notes/基本概念(1)异常:1. 服务器宕机 内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。 服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。2. 网络异常 有一种特殊的网络异常称为网络分区,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。3. 磁盘故障 ...
2021-05-17 14:15:13 180
转载 详解Casper FFG共识算法
本文配套视频:https://v.qq.com/x/page/f07704nx4iq.htmlCasper FFG是Vitalik提出来的一个PoW/PoS混合的算法,目的是为了让Ethereum平滑过渡到纯PoS。论文在这里,Casper the Friendly Finality Gadget,本文主要讲解这篇论文的核心知识点。Casper FFG算法流程目前是2018年,Ethereum依旧是一个纯PoW算法的区块链,跟比特币一样。PoW是一个非常简洁的算法,也非常安全,例如这篇论文...
2021-05-17 13:52:31 1276 1
转载 区块链中VRF的应用及原理解析
VRF 的基本原理是什么?如何利用 VRF 来实现共识?VRF 还可以用在哪些场景?《区块链中VRF的应用及原理解析》,起因是来自我们团队在做的一条叫 Tarax Network 的公链。因为场景定位的缘故,我们想找到一种低功耗的方式来进行共识。那么 POW 肯定是没办法考虑的,很容就会想到 POS。继而考虑到,无论是 POW 或是 POS,都是想不被预测的随机找到一个节点进行区块打包,并让这个区块能被全网承认。 那么在随机选点这件事上,VRF基于可验证随机选点的抽签,是做的最直接的...
2021-05-17 13:49:55 2043
转载 比较各种共识算法的Finality和Liveness
不要浪费时间为纯异步网络设计共识算法。由于 FLP Imposibility 原理,No completely asynchronous consensus protocol can tolerate even a single unannounced process death因此不要浪费时间为纯异步网络设计共识算法。解决办法就是,要么加强对网络的要求,要求网络是Synchronous或者Partially Synchronous的(从异步到同步或者半同步,网络状态变好了),或者放松对f.
2021-05-17 13:47:39 492
转载 详解Tendermint共识算法
Tendermint算法核心流程是什么?Tendermint隐含了什么锁机制?Tendermint 是 Tendermint公司开源的的一个项目,是一个pBFT算法的变体,Tendermint和pBFT的关系类似于Raft和Paxos的关系,Tendermint是pBFT的简化版。算法核心流程Tendermint 核心算法流程如下图所示:Tendermint算法先随机选出一些节点作为Validators(怎么选择验证节点?见后面的“如何选择验证节点”),然后选择其中一个valid..
2021-05-17 13:46:07 1640
翻译 分布式一致性协议介绍(Paxos、Raft)
两阶段提交Two-phase Commit(2PC):保证一个事务跨越多个节点时保持 ACID 特性;两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。过程: 准备阶段:协调者询问参与者事务是否执行成功; 提交阶段:如果事务在每个参与者上都执行成功,协调者发送通知让参与者提交事务;否则,协调者发送通知让参与者回滚事务。 需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。只有在提交阶段接收到协调者发来.
2021-05-17 13:40:46 432
转载 【深度知识】Tendermint共识算法原理和框架流程
1. 摘要Tendermint是跨链Cosmos项目的核心技术。本文主要介绍以下内容:(1)Tendermint的网络层级框架图(2)Tendermint模块组成及共识算法原理(3)Tendermint工作流程2. Tendermint概述Cosmos的开发团队Tendermint其实早在2014年就开始意识到了其不足,并持续专注于寻求不依赖挖矿等高电力消耗的共识机制,提供快速的交易处理能力,它们的目标是为全事件所有的区块链提供速度、安全和可扩展性。目前,Tendermint加入了微软Az
2021-05-17 10:31:20 1047
转载 跨链技术背景
随着区块链技术的火热,越来越多的企业和开发人员加入到区块链的浪潮中,市面上也出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。然而大部分链上应用(加密货币或者智能合约)都无法跨越当前链的边界,不能与其他链协同合作实现价值的流通从而限制了区块链的发挥空间。如何能让不同类型的链协同合作实现价值的流通成了探索的方向,这也是跨链技术的起因。跨链技术是打开链与链之间互通的钥匙,能很好地解决价值孤岛的问题,建立价值网络的桥梁。目前主流的跨链技术包括:公证人机制(Notary schem
2021-05-17 10:10:50 522
转载 深度解析Tendermint,快速融入Cosmos生态
区块链的公链项目越来越多,每个项目都是一个孤立的网络体系,因此区块链项目之间的互联互通能力也是技术发展的大方向。这其中Cosmos项目是其中的优秀代表。本文作者从Cosmos核心技术Tendermint开始,深度剖析Cosmos项目,让大家对跨链技术将一个比较深入的了解。导读2017年以来,区块链项目出现了井喷式地上升,然而在喜人增长态势的背后,人们也注意到大部分项目都缺乏与其它区块链项目互连互通的能力而成为孤立的网络体系。因此,跨链技术也逐渐进入了大家的视野,本文将为大家解读一个跨链项目Cosmo
2021-05-17 10:04:18 286
转载 解读 Rust 2021 Edition RFC
目前 Rust 2021 Edition 正在讨论中,RFC 3085 目前已经取代了 RFC 2052 成为新的 RFC。Edition 在RFC 2052中提出,Rust在2018年发布了第一个 Edition版本。这项工作在许多方面都是成功的,但也带来了一些困难的教训。 RFC 3085 为 2021 Edition 提出了不同的模型。 需要注意的是,目前该 RFC 还未合并。「2021 Edition 模型」讨论的关键点包括:Edition 用于将语言引入更改,否则可能...
2021-05-13 16:41:32 528
原创 rust - 将闭包传递给特征方法: expected type parameter,发现闭包
我对如何使它正常工作有些困惑,我已经从真实的东西中删除了它。我写了一个特质:pub trait Renderable<F: Fn(&PropertyTags)> { fn set_property_changed_callback(&mut self, callback: Option<F>);}add_child的'child'参数受哪个限制,而PropertyTags只是一个枚举。我包括了child类型的模拟实现,以演示我的用法:pub
2021-05-13 14:08:34 745
原创 rust - 为什么对已删除对象的可变引用仍算作可变引用?
这是一个简化的示例:struct Connection {}impl Connection { fn transaction(&mut self) -> Transaction { Transaction { conn: self } }}struct Transaction<'conn> { conn: &'conn Connection,}impl<'conn> Transaction<'.
2021-05-13 14:07:09 238
原创 generics - 如何在Rust中添加一个泛型类型实现另一泛型类型的约束?
我该如何做这样的工作:struct FooStruct<A, B> where A : B, B : ?Sized {...}我搜索了一些类型标记以告诉编译器S必须是一个特征,在Rust文档中搜索了此模式的一些示例,但找不到其他人遇到相同的问题。这是我的代码:trait Factory<S> where S : ?Sized { fn create(&mut self) -> Rc<S>;}trait Singleton<
2021-05-13 14:05:54 251 1
转载 C++工程师的Rust迁移之路
C++工程师的Rust迁移之路(1)- 起步Rust应该是最近最热门的几个语言之一。它既有C++的零成本抽象能力;又跟C语言一样,贴近底层,内存布局一览无遗;但同时又没有这些语言的历史负担,具有现代语言非常优秀的表达和抽象能力;最重要的是,它从语言层面上实现了内存与线程安全。本系列文章,是专门针对对Rust感兴趣的C++工程师的,主要介绍了完成相同的任务在C++和Rust中的异同。关于Rust设计上的优秀和特点,就不在本系列文章中集中解释了,大家可以在每一个对比细节中慢慢感受,看它是不是直击你的
2021-05-13 10:44:25 1482
转载 Rust语言的多线程编程
写这篇短文的时候,正值Rust1.0发布不久,严格来说这是一门兼具C语言的执行效率和Java的开发效率的强大语言,它的所有权机制竟然让你无法写出线程不安全的代码,它是一门可以用来写操作系统的系统级语言,如果说新一代编程语言是什么,那就Rust了。下面我注重介绍Rust的多线程编程是怎样,其中大部分内容参考翻译自Rust的官方文档,请看:Concurrency并发在计算机科学上,并发Concurrency 和并行parallelism是非常重要的话题,也是软件产业一个热门的话题。计算机CPU有了.
2021-05-13 10:12:46 908
原创 如何清除windows&office KMS激活
在windows或office中使用了KMS的180天激活后,就会无法使用MAK KEY永久激活。这里我向大家介绍如何清除KMS激活信息 首先要卸载掉KMS的程序。 方法是在控制面板,卸载程序,找到相应的KMS激活程序就可以了,比如KMS10,OEM7等等 卸载完成之后,打开管理员命令提示符。 方法一:按键盘上的win+X+A,如果设置了用户控制的选择允许就可以打开了。 方法二:在开始菜单搜索CMD,右键,选择以管理员身份运行,同样如果设置了用户控制的选择允许就可以打开了。
2021-05-09 10:30:15 12590 3
原创 libzmq3-dev_4.3.2-2ubuntu1_arm64.deb
libzmq3-dev_4.3.2-2ubuntu1_arm64.debDescriptionlibzmq3-dev - lightweight messaging kernel (development files)Property Value Operating system Linux Distribution Ubuntu 20.04 LTS (Focal Fossa) Repository Ubuntu Universe arm64Official.
2021-05-07 13:53:13 732
转载 透过 Rust 探索系统的本原:并发原语
几周前我写了篇关于并发的文章(透过 rust 探索系统的本原:并发篇),从使用者的角度介绍了常用的处理并发的工具:Mutex / RwLock / Channel,以及 async/await。今天我们讲讲这些并发手段背后的原语。这些原语,大家在操作系统课程时大多学过,但如果不是做一些底层的开发,估计大家都不记得了。今天,我们就来简单聊聊这些基础的并发原语,了解它们的差异,明白它们使用的场景,对撰写高性能的并发应用有很大的帮助。有同学可能会问:我一个写 web 的,需要 synchronize 的时候靠
2021-05-06 15:23:59 801
VC界面开发资源包
2014-01-04
MFC_雪花漫天飞舞的唯美场景
2014-01-04
可换肤的无损wav格式音乐播放器源码v1.0.3.5
2014-01-04
MFC写的一款游戏——空中大战(SpaceWar)
2014-01-04
Cocos2D-X游戏开发技术精解
2014-01-04
高仿QQ电脑管家8界面(源代码)
2014-01-04
程序员编程艺术第一~三十七章集锦by_July
2014-01-04
IOS环境搭建与开发入门(图文)
2014-01-04
Android多点触控技术实战,对图片进行缩放和移动Demo
2014-01-03
Android滑动菜单框架Demo修正版
2014-01-03
开源项目SlidingMenu示例
2014-01-03
GitHub开源项目SlidingMenu类库
2014-01-03
Android应用开发入门教程(经典版)
2014-01-03
Android照片墙应用实现Demo
2014-01-03
Android瀑布流照片墙实现,体验不规则排列的美感Demo
2014-01-03
Android教你如何一分钟实现下拉刷新功能demo
2014-01-03
26个经典的Android例子代码
2014-01-03
Android实现ListView的A-Z字母排序和过滤搜索功能
2014-01-03
Android专用驱动
2014-01-03
Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效demo
2014-01-03
Android开发精要(完整扫描版)
2014-01-03
用区块链技术保障物联网安全
2020-12-05
区块链学习资料.zip
2019-09-16
Google Android SDK开发范例大全(第3版)
2014-01-24
读懂C++递归程序
2014-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人