区块链 - 技术教程文章

java-在网络上共享对象(区块链)

我在Java上创建了一个简单的“区块链”. 区块链类是ArrayList<>.的块.这些块由以下各项组成:哈希码,先前的哈希码和nonse计数器.创建一个块时,会将其添加到区块链中,但是,在解析算法(SHA256)之前,无法分配其他块.如果哈希码是唯一的,则成功添加该哈希码或删除该块. 我现在想做的是在网络上共享区块链,因此SHA256算法不会由本地计算机解决,而是由网络上的用户解决(例如,比特币挖掘). 所以我的问题是:如何在网络中的不同计算机上共享...

攻击区块链网络的都有哪些方式方法【图】

区块链是一种新技术,也是一种自由的产物,通过共识机制、密码学、程序语言构建出一个相对公平的匿名自由世界。公开、透明、自由是它的slogan,但同时漏洞与恶意攻击也是与之并存,那在区块链史上发生过哪些攻击呢?可以一起来简单了解一下。 DAO攻击 DAO攻击应该说是链圈里大名鼎鼎,毕竟DAO攻击当时可是差点毁了以太坊,这个攻击并不是某一个经典的名词性攻击而是以事件来命名的。2016年6月17日,一群黑客攻击了The DAO网络,盗取...

区块链书籍推荐:【A032】[图灵程序设计丛书]《去中心化应用:区块链技术概述》【图】

《去中心化应用:区块链技术概述》pdf点这里移情表述是指将谈话焦点放在你的谈话对象而不是你本人身上。这是让别人获得良好自我感觉的有效的方式之一。持续关注对方是很难的,因为我们从本质上来说是以自我为中心的,认为地球是围绕自己旋转的。去中心化应用:区块链技术概述。 尽管如此,如果你每次谈话都能令对方获得良好的自我感觉,你就能成功实现“友谊黄金法则”的目标,从而让对方喜欢上你。去中心化应用:区块链技术概述。...

区块链共识算法实现

最近对区块链的共识算法比较感兴趣,也在尝试着使用JAVA实现它。进度不是很快,日积月累吧,目前在写POW,RAFT。 POW还有一小块部分没有搞明白,还在搜索资料中。 RAFT实现了第一个阶段:LEADER选举,使用了JAVA,MAVEN,DOCKER实现。虽然还有一些小瑕疵,慢慢来吧。 附上GitHub地址,希望各位大佬可以指点迷津(主要还是自学进度太慢了)。

教你 如何用Python开发一个简单的区块链数据结构!

根据IEEE此前的一项调查, Python已成为最受开发者欢迎的语言之一。 由于其对于技术小白天然友好的特性,以及不断更新的新功能。Python越来越受到国内外开发者的喜爱。越来越多被用于独立、大型项目的开发开始使用Python。 20世纪90年代初荷兰人Guido van Rossum为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。 之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播...

.NET和Python哪个好?新应用诞生.NET依赖注入在区块链项目AElf中的实践问题

.NET是一个微软的技术平台,致力于敏捷、快速开发和跨平台,可以用于开发C/S结构的软件(WinForm技术),如QQ、财务管理系统等;也可以用于开发B/S结构的网站,如门户网站、OA系统等。一个.NET应用是使用.NET Framework类库编写,运行于公共语言运行时Common Language Runtime上的应用程序。.NET Framework组件是.NET应用开发环境的核心,负责程序的执行。 微软推出.NET平台的重要原因:留住Windows程序员,和Java平台竞争,推销服...

基于区块链的云笔记小程序开发(二)【代码】【图】

接着上一步骤,继续开发 今天任务:搭建node服务端 通过web3.js实现与以太坊的交互 安装节点工具Ganache,来搭建私有链节点 利用postman测试接口 目录结构: 搭建node服务端(server.js)var http = require("http"); var url = require("url"); var querystring = require(querystring);function start(route, handle) {function onRequest(request, response) {var pathname = url.parse(request.url).pathname;var body = ...

Hyperledger Fabric和Composer实现区块链应用程序【代码】【图】

目前无法绕过技术领域的是区块链话题。但除了加密货币之外,还有更多有趣的应用程序可以带来许多激动人心的软件生态系统。这也适用于Hyperledger项目,该项目提供了一个非常模块化的区块链框架。让我们看看使用Hyperledger Fabric和Composer实现区块链应用程序是多么容易。 关于项目Hyperledger Hyperledger是一个umbrella项目的名称,在该项目下开源区块链方法和工具是协同开发的。它由Linux基金会于2015年推出,并享有IBM,英特尔...

java 实例理解区块链的概念【代码】

区块链的核心是去中心化的存储,传统的数据库解决方案,包括关系型数据库,非关系型数据库,都是属于中心化的存储方式。去中心化的存储,就是数据没有中心,并且每个数据节点都包含了上一个数据节点的信息。通过一个实例来理解区块链的数据存储形式:package com.weihua.blockchains.blackchain;import java.util.Date; public class BlockMan { public String hash; public String previousHash; private String data; //our dat...

私有区块链Hyperledger Fabric和公共区块链ARK.io如何通过solidity智能合约结合【代码】

我想展示如何将公共区块链(如ARK.io)的功能与私有区块链(如Hyperledger)结合起来。特别是,我们将看到ARK.io上的交易如何触发在Hyperledger Fabric + Burrow中部署的Solidity Smart Contract的执行。 安装Hyperledger Fabric 删除以前的Hyperledger Docker镜像(如果有): docker kill $(docker ps -q) docker rm $(docker ps -aq) docker rmi $(docker images dev-* -q)安装先决条件: https://hyperledger-fabric.readthedo...

Java开发区块链的三大sdk库

如果你想将区块链合并到一个Java项目中,现在我们来看看就是这个细分领域中三个最大的OSS玩家。 好的伙计们,我们都听说过比特币,以太坊或其他加密货币,其中有一些时髦的名字围绕着我们常见的新闻,但我们作为Java开发人员知道如何轻松地与这些区块链技术进行交互吗?以下是可用于利用区块链趋势的前三大Java项目。该列表基于GitHub存储库星级排序。非常感谢评论和意见。 BitcoinJ 这个名字很具描述性,你不觉得吗?如果你想知道...

成为一个区块链程序员有多难

在不断变化的技术环境中保持自我的更新迭代是很困难的事情。即使是BAT级别的高级工程师在区块链刚刚兴起的时候,也是一头雾水,他们和你其实在同一起跑线上。越来越多的人开始学习编程,并且技术商业化的脚步会随着区块链的出现而加快。这也就意味着普通程序员的门槛会越来越低。很多程序员担心人工智能会取代自己的工作,这种想法既不新鲜也并非没有根据。在任何领域,特别是在区块链技术领域,市场力量会推动企业走向智能化和商品...

用Python从零开始创建区块链【代码】

用Python从零开始创建区块链 ?本文主要内容翻译自Learn Blockchains by Building One#8;本文原始链接,转载请注明出处。作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一个区块链。 对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块链是怎样实现的。 但是完全搞懂区块链并非易事,我喜欢在实践中学习,通过写代码来学习技术会掌握得更牢固。通过构建一个区块链可以加深对区块链的理解...

区块链底层系统开发区块链公有链联盟链Hyperledger网络开发

各行各业都期待能够使用区块链技术助力产业升级。美国的农业巨头嘉吉公司在1月25日宣布,将投资数字化工程资源来开发Hyperledger网络。旨在通过区块链技术简化供应链。该公司表示,Hyperledger Grid可以“为加速全球食品和农业供应链开发区块链和其他数字提供解决方案”。 目前各个国家不同领域的大佬都在研究区块链技术,推动自身行业的发展,尤其是在金融和食品、物品溯源方面,由于区块链的可追溯、不可窜改的特性非常适合最溯源...

区块链项目开发:双因素身份验证应用程序如何帮助保护你的加密帐户【图】

如果你使用任何加密数字资产交换,你将需要使用某种形式的双因素身份验证来保护你的帐户。简单来说,双因素身份验证是第二层安全性,涉及获取发送到应用或手机的唯一代码。登录到你已设置双因素的网站时使用该程序。它增加安全性的原因是因为代码是随机生成的,因此需要将你的登录信息输入你的帐户,并且需要最新版本的代码。这意味着***需要获取代码的最新版本以及你的登录信息才能进入你的帐户!区块链交易所开发公司区块链交易所...

区块链交易系统开发:创建区块链交换应用程序所需要了解的点【图】

自2008年创建以来,区块链技术已在整个互联网上产生了巨大的影响。全世界许多公司正在努力将区块链纳入其业务。 【区块链交易系统开发:创建区块链交换应用程序所需要了解的点】区块链它是如何工作的?首先,重要的是要提到区块链基本上是公开的全球数据库。它不仅允许世界上的任何人向其添加信息,而且还通过在网络上传播信息使这些信息不可挽救。数据不存储在任何特定的地方或服务器上,它分布在整个地方,这使得它比区块链之前存...

解密区块链最强心脏 迅雷链共识算法详解【图】

11月10日在广州贝塔咖啡举办的迅雷链技术沙龙上,迅雷链底层工程师张骁就迅雷链共识算法的内在细节,向到场的开发者和区块链爱好者做了详细解读。DPoA+PBFT的算法保证了分布式系统中的强一致性和高效率共识,吸引了在场来宾的关注。 什么是共识算法? 张骁认为,区块链建立在分布式系统上,有若干个节点,每个节点都会维护自己的数据,这些数据需要保证一致性。如果不同的节点提供的数据不同,就不是一个能够正常对外工作的分布式系...

区块链教程Fabric1.0源代码分析ECDSA椭圆曲线数字签名算法【代码】

兄弟连区块链教程Fabric1.0源代码分析ECDSA椭圆曲线数字签名算法,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric 1.0源代码笔记 之 ECDSA(椭圆曲线数字签名算法) 1、椭圆曲线算法概述 1.1、无穷远点、无穷远直线、射影平面平行线相交于无穷远点; 直线上有且只有一个无穷远点; ...

区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理一

区块链教程区块链信息安全3椭圆曲线加解密及签名算法的技术原理一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 椭圆曲线加解密及签名算法的技术原理及其Go语言实现 椭圆曲线加密算法,即:Elliptic Curve Cryptography,简称ECC,是基于椭圆曲线数学理论实现的一种非对称加密算法。相比...

区块链教程Fabric1.0源代码分析Peer peer node start命令实现【代码】【图】

区块链教程Fabric1.0源代码分析Peer peer node start命令实现,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric 1.0源代码笔记 之 Peer #peer node start命令实现1、peer node加载子命令start和status peer node加载子命令start和status,代码如下: func Cmd() *cobra.Command { ??...

区块链核心技术:拜占庭共识算法之PBFT全面理解1

PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99)。没错,这个Loskov就是提出著名的里氏替换原则(LSP)的人,2008年图灵奖得...

通过7个python函数理解区块链【代码】

我想对于那里的很多人来说,区块链就是这种现象,很难不让你头脑发热。我开始观看视频和阅读文章,但对我个人而言,直到我编写自己的简单区块链,我才真正理解它是什么以及它的潜在应用价值。 我对区块链的看法是它是一个公开的加密数据库。如果你是亚马逊并且你想使用该技术来跟踪库存水平,那么使用区块链是否有意义?可能没有,因为你的客户不想花费资源来验证你的区块链,因为他们只顾看着网站说Only 1 left!。 我会让你考虑未...

区块链教程btcpool矿池源码分析slparser【代码】【图】

btcpool矿池-slparser(share log parser)模块解析 核心机制总结支持三种功能: 指定Date和UID,将打印指定日期指定用户的share信息到stdout UID=0时,将打印指定日期所有用户的share信息 指定Date但未指定UID,读取指定日期sharelog,统计数据并写入数据库 按Worker、user、pool三个维度统计:Accept1h、Accept1d、score1h、score1d、Reject1h、Reject1d 数据库仅保留最近3个月统计数据 如果Date和UID均未指定,将...

区块链100讲:Hyperledger Explorer简介【代码】【图】

上一篇我们介绍了面向运维的Cello项目,可以帮助运维快速部署与监控各个区块链节点。今天我们将介绍另一个类似的项目 —— Hyperledger Explorer。 1 项目简介 Hyperledger Explorer是一个区块链的图形化explorer,具有使用简便,功能强大,易维护等特点。同样也是Hyperledger众多项目下的一个子项目,目前还处于孵化中。 如果说Cello是一个面向于运维的图形化工具,那么Hyperledger Explorer就是一个面向于开发人员和普通用户的一...

区块链快速入门(四)——BFT(拜占庭容错)共识算法【代码】【图】

区块链快速入门(四)——BFT(拜占庭容错)共识算法 一、BFT简介 1、拜占庭将军问题简介 拜占庭将军问题(Byzantine Generals Problem)是Leslie Lamport(2013年的图灵奖得主)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子。拜占庭将军问题简易的非正式描述如下:拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵御5支常...

兄弟连区块链入门教程eth源码分析RPC分析【代码】

这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符。在这个环境里也内置了一些用来操作eth的 JavaScript 对象,可以直接使用这些对象。这些对象主要包括: eth:包含一些跟操作区块链相关的方法;net:包含一些查看p2p网络状态的方法;admin:包含一些与管理节点相关的方法;miner:包含启动&停止挖矿的一些方法;personal:主要包含一些管理账户的方法;txpool:包含一些查看交易内存...

兄弟连区块链入门教程eth源码分析p2p-udp.go源码分析(二)【代码】

ping方法与pending的处理,之前谈到了pending是等待一个reply。 这里通过代码来分析是如何实现等待reply的。pending方法把pending结构体发送给addpending. 然后等待消息的处理和接收。 // ping sends a ping message to the given node and waits for a reply. func (t *udp) ping(toid NodeID, toaddr *net.UDPAddr) error {// TODO: maybe check for ReplyTo field in callback to measure RTTerrc := t.pending(toid, pongPacke...

兄弟连区块链教程btcpool矿池源码分析BlockMaker模块解析【代码】

btcpool矿池-BlockMaker模块解析 核心机制总结blkmaker可以连多个bitcoind节点 blkmaker监听和接收4类消息:RAWGBT、STRATUM_JOB、SOLVED_SHARE和NMC_SOLVED_SHARE 监听RAWGBT目的为获取gbtHash/交易列表,用于构建Block,gbtHash和vtxs写入rawGbtMap_ * rawGbtMap_保存最近100条gbtHash/vtxs对 监听STRATUMJOB目的为获取jobId/gbtHash,jobId和gbtHash写入jobId2GbtHash * jobId2GbtHash保存最近120条jobId/gbtHash对 监听SOLVE...

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

btcpool矿池-核心机制总结及优化思考 核心机制总结 ①gbtmaker监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka Gbt消息大小约2M,含交易列表②jobmaker同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印...