Go语言中文网 为您找到相关结果 774

释放阻塞的以太坊交易

目前以太坊正面临着许多积压的交易,导致一些交易数小时甚至数天都未被处理。 本文解释了转账如何被卡住,以及如何释放它们。确定gas价格发送以太坊交易时,有许多方法可以确定最佳gas值。https://ethgasstation.info等网站提供了gas使用情况的概述,https://www.etherscan.io/txsPending提供了当前交易池的有关信息。后者的网站特别有用,因为它可以通过gas价格组织交易清单。 你可以点击GasPrice栏来查看。 由此产生的清单大致也是矿工看待交易的方式,所以如果您据此选择一个gas价格以确保您的交易是在前几页,您可能会有一个非常短的交易确认时间。但是如果你的交易没有被确认呢?它有可能被阻塞了,需要进行释放。理解阻塞交易在解释如何释放阻塞交易之前...阅读全文

博文 2018-11-08 00:34:43 以太中文网

区块链教程Fabric1.0源代码分析Ledger(账本)一

区块链教程Fabric1.0源代码分析Ledger(账本)一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric 1.0源代码笔记 之 Ledger(账本) 1、Ledger概述 Ledger,即账本数据库。Fabric账本中有四种数据库,idStore(ledgerID数据库)、blkstorage(block文件存储)、statedb(状态数据库)、historydb(历史数据库)。其中idStore、historydb使用leveldb实现,statedb可选择使用leveldb或couchDB。而blkstorage中index部分使用lev...阅读全文

博文 2018-10-31 17:34:40 兄弟连区块链

区块链火爆,再不知道Golang就晚了

Golang,也叫Go语言,是2009年刚刚被发发布的一门新语言。 区块链,是2019年我国提出的新战略。 一个不争的事实就是,大多数从事区块链开发的小伙伴都是用Golang,大多数招聘区块链技术工作的公司都要求Golang背景的人员。 区块链,作为一个技术,本身跟开发语言没有一对一关系。 事实上,纯技术角度来看,编写区块链最好的语言反而是古老的C++,比JAVA还古老的语言。甚至,JAVA、Python、Rust等等语言都可以用来编写区块链程序。 Golang成为区块链世界的主流,除了市场的选择,还有这种语言自身的优点,比如:1. 天生支持并发,go关键字直接搞定;2. 采用协程来实现高并发,管道负责通信;3. 代码编译成二进制,执行速度快,堪比C语言;4. 适合做分布式系统开发;那么下面...阅读全文

博文 2019-12-17 04:32:40 Testfan软件测试

2020 区块链 golang 版本(2)

封面 今天我们依旧是理论,代码实现随后就来。 交易流程 如果没有交易那么比特币就失去意义,即使现在拥有一套比特币的源码,也无法再创造出一下个比特币。比特币货币发行也是离不来交易,这都说明交易在区块链中的重要性。 1.创建交易 创建一个地址,然后通过往这个地址发送比特币就完成一次交易。 2.广播交易(校验交易) 当交易完成,就会发送到网络中每一个节点,每一个节点在接收到交易后,需要先进行校验。校验签名和金额,其实只有校验通过该节点才会继续广播。每一个节点的校验都是独立,并不依赖于其他节点。那么如果不做校验,在打包完成后挖矿后,因为其他节点对块中交易校验时发现错误就会造成这一次挖矿失败。 3.挖矿竞争 也是就是工作量证明,工作量证明好处放置某个节点作弊,在区块链通过工作量证明和投票来有效放置某些...阅读全文

使用BSN一天学会区块链开发-python篇

《使用BSN 一天学会区块链开发》系列文章可以帮助具有一定开发经验的开发者,在不需要学习区块链开发语言的情况下,在区块链服务网络(BSN)上完成区块链应用的开发。本文主要介绍用户如何通过链下业务系统使用Python语言与链上数据进行交互而进行的相关操作流程说明,但在说明链下业务系统与链上进行数据交互之前,首先对用户如何在区块链服务门户注册、应用发布服务、应用服务参与以及应用管理进行一一说明。注册和登录打开区块链服务网络网址:www.bsnbase.com, 点击登录页面中的【内测申请】按钮进入内测申请页: 根据页面中的提示填写内测申请信息并提交内测申请,内测申请用户分为个人用户和企业用户两种,申请人应根据自己的用户类型任选一种进行申请, 内测申请提交后需等待系统审核,待系统审核通过后将向申请...阅读全文

选择哪种 Linux版本更好一些?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么? 今天我决定写一篇关于如何选择Linux发行版的博客文章,以便于大家借鉴。 Screenshot from 2019-08-31 00-08-53.png 我与Linux的历史 我觉得我应该先介绍一下我和Linux的过往,以防你在阅读本文时无法理解我。当然,如果你不在乎,你也可以跳过。 我在1996年左右开始使用Linux。我和Linux的第一次亲密接触是Slackware 4,这是我在Egghead Software购买的一套CD(没错,是旧的)。我的一个朋友告诉我这个Unix非常棒,他说我只需要尝试一下,...阅读全文

博文 2019-10-08 21:32:45 aside section ._1OhGeD

【go共识算法】-POS

pos介绍 参考链接1 pos概念 Proof of Stake,股权证明。PoS核心概念为币龄,即持有货币的时间。例如有10个币、持有90天,即拥有900币天的币龄。另外使用币,即意味着币龄的销毁。在PoS中有一种特殊的交易称为利息币,即持有人可以消耗币龄获得利息,同时获得为网络产生区块、以及PoS造币的优先权。 点点币应用 第一个基于PoS的虚拟币是点点币。鉴于PoW的缺陷,2012年Sunny King提出了PoS,并基于PoW和PoS的混合机制发布了点点币PPCoin。前期采用PoW挖矿开采和分配货币,以保证公平。后期采用PoS机制,保障网络安全,即拥有51%货币难度更大,从而防止51%攻击。 点点币(Peercoin)是首先采用权益证明的货币,点点币在SHA256的哈希运算的难度方...阅读全文

博文 2018-09-27 14:34:41 jincheng828

2018.8.30你是这些公司青睐的人才吗?

最近一个案例引发了我对区块链公司用人要求的思考。一周前推荐了一位我认为不错的候选人,985院校计算机专业硕士学历,两年工作经验,毕业后一直在一家知名的互联网公司上班,技术也比较扎实,近期两个月在持续关注区块链并看好区块链行业,想趁年轻进入这个行业,看看有没有更好的发展机会。他的条件不错,我帮他推荐了业内三家不错的区块链公司。当初拿到他的简历时,我挺满意的,认为他很大概率上会拿到这几家公司的offer,因为之前操作过类似的case,这种背景的人一般都会被offer。等待了一周,结果却在我的意料之外。那么问题到底出现在哪里呢?我这几天一直在思考。直到今天和一位区块链公司的招聘聊天中她的一句话提醒了我:请尽量帮我找资深一点的人吧,要来了就能干活的那种,薪资不是问题,都能谈。从去年年底到现在,半年多...阅读全文

Golang公链开发004-通过命令行操作区块链

目录 flag基本使用 os.Args基本使用 flag与os.Args组合使用 通过命令行添加/查询区块 测试代码与测试结果 一. flag基本使用 通常我们在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。在 go 标准库中提供了一个包:flag,方便进行命令行解析。 1.导入flag包 import ( "flag" ) 2.使用示例 //定义一个字符串flag,flag名为printchain,默认值为:hello BTC world,参数说明: 输出所有的区块信息 flagString := flag.String("printchain", "hello BTC world", "输出所有的区块...阅读全文

博文 2018-07-25 15:35:56 暗黑魔君

golang orm之gorose 2.0版本正式发布.md

关于gorose 2.0 gorose, 最风骚的golang orm, php版本的laravel eloquent. 经过几个月的重构和打磨, 再加上近一个月的预览版测试和改进, gorose 2.0正式版终于与我们见面了. 新版本做出了重大改动和升级, 完全重构了基础架构和实现方式, 下面, 我们一起来看看gorose 2.0的特点吧 gorose 2.0特点 1. 全新架构 gorose 2.0 采用模块化分离架构, 主要分为4大模块: engin: 初始化gorose和数据库链接,配置解析,连接池启用 session: 数据库操作,事务操作等,采用会话隔离,确保每一个连接和数据库操作都是相互独立的, 充分利用连接池来提升数据库效率 orm: 通过优雅的api来实现对象关系映射,使操...阅读全文

博文 2019-08-01 14:33:49 fizzday

常用的 Go 框架、库和软件中文收录大全????

背景介绍 大多数 Gopher 应该对于 Awesome-go 应该都不陌生。 Awesome-go 是个很优秀的项目,里面收录了很多优秀的用 Go 编写的开源库、框架、软件 截至目前,Awesome-go 已经收录了Web框架、机器学习、分布式系统、编译器、物联网、持续集成等方方面面共计 81 类大项, 1777 个用 Go 编写的仓库,很多我们平常开发上所需要的库都能在上面能找到,为我们省去了不少时间。 Awesome-go Web框架收录部分 Awesome-go 使用痛点 虽然 Awesome-go 收录的内容确实很丰富,但是英文原版的使用体验上却是差强人意,我们所遇到的痛点大体如下 : 仓库重要信息丢失。在英文版 Awesome 下,因为收录的库较多,可选择性也比较大,虽然这是个优...阅读全文

博文 2019-06-28 12:04:17 应杲臻

Artifactory清理未使用的二进制品的最佳实践

Artifactory充分利用了基于Checksum的存储,但是这种机制无法代替常规的工件清理任务。软件开发可能很杂乱,很多时候Artifactory中的许多工件都从未使用过。例如,许多CI / CD构建都配置为基于源代码控制“提交”运行,并且一旦将这些快照构建发送到Artifactory,就永远不会实际下载它们。 考虑到软件开发的动态性质,大多数组织都有自己的数据保留策略。由您决定可以清除哪些数据,但是内置工具可以覆盖大多数情况。通常,在Artifactory中使用三种技术来管理工件存储:–限制保留多少SNAPSHOT–清除超大缓存–删除未使用的工件限制保留多少SNAPSHOTArtifactory具有内置机制来限制构建的“快照”。该系统的目的是确保在覆盖“release”工件之前将其从“...阅读全文

博文 2020-03-10 19:09:52 JFrogChina

兄弟连区块链技术培训Fabric 1.0源代码分析(48)Fabric 1.0.4 go代码量统计

兄弟连区块链技术培训Fabric 1.0源代码分析(48)Fabric 1.0.4 go代码量统计# Fabric 1.0源代码笔记 之Fabric 1.0.4 go代码量统计## 1、概述除test、vendor、mocks、example、protos外,go核心代码文件341个,核心代码行63433行。```bashfind ./ |grep -vE 'test|vendor|mocks|example|protos' | grep '\.go$' | wc -l341wc -l `find ./ |grep -vE 'test|vendor|mocks|example|protos' | grep '\.go$'`63433 total```## 2、代码分布 目录 代码量 代码量占...阅读全文

博文 2018-07-23 15:34:58 Delete_88c3

用 golang 实现区块链系列一 | 基本原型

介绍 区块链是二十一世纪以来最具革命性的科技之一,它仍在发展中,并且其潜力仍未被充分认知。本质上,区块链只是一个分布式的记录数据库,但使它和其他数据库不一样的是,他并不是一个私有数据库,而是公开的。每个使用它的人都有完整或者部分副本。并且一条新的记录只能在被数据库的其他管理员同意的情况下才能被加入。区块链也使得加密货币和智能合约成为可能。 本系列文章将会构建一个基于简单区块链实现的简单加密货币。 Block 我们从 “区块链” 的 “区块” 开始讲起。在区块链中, block 存储着有价值的信息。例如,比特币区块存储着交易信息,这是加密货币的本质。除此之外,区块还包含着一些技术信息,像是版本号,当前时间戳,还有上一个区块的 hash 值。 在本文中,我们不会去着手实现一个区块链中描述的区块,...阅读全文

博文 2018-11-19 20:34:51 小马哥_Magical

轻松学习区块链2 - 简单区块链的实现

源码地址: [https://github.com/wangshizebin/minibc】 区块 我们从“区块链”的“区块”部分开始。区块是区块链中最基本的数据结构,在区块链中,区块存储了有价值信息。例如,比特币区块存储了交易数据,除此之外,区块中还包含其它信息:版本号,当前时间和前一个块的哈希值等。我们把bitcoin的区块定义稍作简化,作为MiniBC的区块定义: type Block struct { Version int32 //协议版本号 HashPrevBlock []byte //上一个区块的hash值,长度为32个字节 Time int32 //时间戳,从1970.01.01 00:00:00到当前时间的秒数 Bits int32 //工作量证明(POW)的难度 Nonc...阅读全文

博文 2019-05-17 14:34:42 泽宾

区块链教程Fabric1.0源代码分析configtx#ChannelConfig

Fabric 1.0源代码笔记 之 configtx(配置交易) #ChannelConfig(通道配置) 1、ChannelConfig概述 ChannelConfig代码分布在common/config目录下。目录结构如下: channel_util.go,channel相关工具函数。 orderer_util.go,orderer(系统通道)相关工具函数。 application_util.go,应用通道相关工具函数。 consortiums_util.go,联盟相关工具函数。 api.go,核心接口定义,如Org、ApplicationOrg、Channel、Orderer、Application、Consortium、Consortiums、ValueProposer接口定义。 r...阅读全文

博文 2018-10-30 17:34:38 兄弟连区块链

golang实现dpos

DPOS股份授权证明,即 Delegated Proof of Stake 译为股份授权证明,最早于 2013 年由 Bitshares 提出,目的为解决 PoW 和 PoS 机制的不足,DPoS 机制的加密货币,每个节点都可以操作区块,并按照个人的持股比例获得“利 息”,DPoS 是由被社区选举的可信帐户(受托人,得票数排行前 101 位)来创建区块, 为了成为正式受托人,用户要去社区拉票,获得足够多用户的信任,用户根据自己 持有的加密货币数量占总量的百分比来投票,DPoS 机制类似于股份制公司,普通股民进不了董事会,要投票选举代表(受托人) 代他们做决策,这 101 个受托人可以理解为 101 个矿池,而这 101 个矿池彼此的权利是完全相等的,那些握着加密货币的用户可以随时通过投票更换...阅读全文

博文 2019-05-13 19:34:52 Steven_25bb

PoW工作量证明

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 PoW是Proof of Work的缩写,即工作量证明的意思。在《拜占庭将军问题》中介绍过,比特币系统中引入了“工作量”的概念,有意降低了信息传递的效率,让矿工必须完成一定的工作量,才能够在全网广播消息。 (孩子第一次为我的文章配图,厉害吧) 以工地的搬砖任务为例,一群工人们(矿工)向火车的车皮(区块)里搬砖,每个工人身边都有一个集装箱,这个集装箱与火车车皮一样大,正好能够装满1000块砖。 工人们只能往集装箱里搬砖,谁先装满集装箱,就把这个集装箱放到车皮里,领取12.5元的工钱(实际上并不是马上拿走,100节车皮之后才能真正取走)。只有第一个搬完的工人能够获得奖励,在这个集装箱放入车皮的同时,其他工人的集装箱里...阅读全文

博文 2019-09-19 15:02:59 链客

用 Go 构建一个区块链 -- Part 6: 交易(2)

翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。如果想直接运行代码,也可以 clone GitHub 上的教程仓库,进入 src 目录执行 make 即可。 引言 在这个系列文章的一开始,我们就提到了,区块链是一个分布式数据库。不过在之前的文章中,我们选择性地跳过了“分布式”这个部分,而是将注意力都放到了“数据库”部分。到目前为止,我们几乎已经实现了一个区块链数据库的所有元素。今天,我们将会分析之前跳过的一些机制。而在下一篇文章中,我们将会开始讨论区块链的分布式特性。 之前的系列文章: 基本原型 工作量证明 持久化和命令行接口 交易(1) 地址 本文的代码实现变化很大,请点击 这里 查看所有的代...阅读全文

博文 2017-11-12 13:04:46 liuchengxu

BitKan

梅克尔树(Merkle trees)是区块链的基本组成部分。虽说从理论上来讲,没有梅克尔树的区块链当然也是可能的,你只需创建直接包含每一笔交易的巨大区块头(block header)就可以实现,但这样做无疑会带来可扩展性方面的挑战,从长远发展来看,可能最后将只有那些最强大的计算机,才可以运行这些无需受信的区块链。 正是因为有了梅克尔树,以太坊节点才可以建立运行在所有的计算机、笔记本、智能手机,甚至是那些由Slock.it生产的物联网设备之上。那么,究竟梅克尔树是如何工作的呢,它们又能够提供些什么价值呢,现在以及未来的? 首先,咱们先来讲点基础知识。梅克尔树,一般意义上来讲,它是哈希大量聚集数据“块”(chunk)的一种方式,它依赖于将这些数据“块”分裂成较小单位(bucket)的数据块,每一...阅读全文

博文 2017-12-06 03:34:43 谈谈以太坊的Merkle树

BDEX知识科普之跨链的本质

本文引自《VNTChain研究院》 跨链的本质是什么? 跨链的实现是一个较为复杂的过程,目前主流的跨链技术包括:公证人模式(主要包括中心化公证人机制和多重签名公证人机制)、侧链(Sidechains)/中继(Relays)模式、哈希锁定模式,对此已有许多文章及报告进行了详细讲解,就不再和大家赘述。接下来我想着重与大家探讨跨链的本质。 1.跨链类型 从跨越的区域范围,可以分为链内跨链与链外跨链。链内跨链,即指同一区块链底层基础平台,通过跨链技术实现平台内的联盟链与联盟链、公有链与联盟链的优势融合,从而实现价值流转与信息交互,满足商业场景需求。链外跨链则是基于不同区块链底层基础平台进行跨链交互。从跨越的区块链底层基础平台类型,可以分为同构链跨链与异构链跨链。同构链通指采用同一底层协议(包括安全机...阅读全文

博文 2019-09-05 15:32:58 逗币狗

Bystack的高TPS共识算法

共识算法是分布式系统保证节点数据状态一致性的方法,在区块链的共识算法分POW(工作量证明)和POS(权益证明)两大类。第一类POW模式是在公链项目中运用的最广泛应用的共识算法,比特币长达10年的运行已充分证明POW的安全性与稳定性。POW的特性是将去中心化与安全性发挥到了极致,但却牺牲了性能。 如比特币的峰值TPS为3.87, 平均每笔交易被打包入块需要10分钟;比原链的峰值TPS为36.32,平均每笔交易被打包入块需要2.5分钟。第二类的POS模式是由通过算法来选择出块共识节点,多用于联盟链和一些追求高TPS的新公链项目中。POS的特性是通过支持更小的出块间隔来达到最优的性能,但却牺牲了部分的安全性与去中心化。 Bystack是一个基于主侧链架构的区块链BaaS平台,将区块链分为Layer...阅读全文

博文 2019-05-27 15:34:41 比原链Bytom

2020 区块链 golang 版本(5)

封面 协议 如果发行数字货币也采用中心机构以发行传统货币的方式来发行数字货币,可能会存在哪些问题。其中一个最大问题就是双花问题,也就是用户通过复制数字货币(文件)形式进行多次支付。术语上称为花两次攻击(double spending attack)。要解决双花问题,可以由中心结构对数字货币加编码,中央结构需要维护一张表来记录每一个数字货币的去向,也就是每张货币的所有者。这样做势必带来繁重工作,如果采用去中心化的比特币来通过挖矿来实现对发币的控制。 通过维护数据结构记录并查询每一个数字货币的去向,只不过现在的数据结构不是由中央结构来维护而是由每一个节点来共同维护。这个数据结构就是区块链。 比特币交易中都需要输入(input)和输出(output)两个部分 输入部分要说明币的来源 输出部分需要给...阅读全文

博文 2020-04-26 21:32:45 zidea

​使用BSN一天学会区块链开发-C#篇

作者:曹国波《使用BSN一天学会区块链开发》系列文章可以帮助具有一定开发经验的开发者,在不需要学习区块链开发语言的情况下,在区块链服务网络(BSN)上完成区块链应用的开发。本文主要介绍用户如何通过链下业务系统使用C#语言与链上数据进行交互而进行的相关操作流程说明,但在说明链下业务系统与链上进行数据交互之前,首先对用户如何在区块链服务门户注册、应用发布服务、应用服务参与以及应用管理进行一一说明。注册和登录打开区块链服务网络网址:www.bsnbase.com, 点击登录页面中的【内测申请】按钮进入内测申请页: 根据页面中的提示填写内测申请信息并提交内测申请,内测申请用户分为个人用户和企业用户两种,申请人应根据自己的用户类型任选一种进行申请, 内测申请提交后需等待系统审核,待系统审核通过后将向申...阅读全文

博文 2020-01-08 19:33:22 区块链服务网络BSN

建站宝盒到底有多大的威力令人为之痴迷?

建站宝盒是针对中小企业用户建站需求而打造的一款自助建站系统。用户只需通过在线申请账号和密码的方式建网站,不用自己上传源代码,只需登录网站管理系统即可选择网站模板风格、上传文字和图片内容、设置网站栏目、维护网站内容,其针对不同行业特点精心设计的网站栏目和网页风格。 此外,建站宝盒支持三种语言中文版网站、繁体版网站、英文版网站、运用功能强大的管理平台。建站宝盒大大节省建立网站的成本,极大地缩短了企业建站的时间。 ![5.jpg](https://static.studygolang.com/180427/a0738317884ddcaeebd9d5b132fd9a31.jpg) 简单易用 强大灵活 传统网站建设做出的网站管理后台功能简单,后期维护、网站建设周期长,修改...阅读全文

区块链概念 That You Must Know 第四期(3)

第四期 简介go语言下挖矿难度的代码实现(3) 卡酷少Wechat:13260325501 经过之前所有的铺垫,这一期我们将对难度的代码实现作出简单演示。(以下是在不考虑近期各机构对于区块存储信息改进的情况下。对于区块信息的调整,有比如“隔离验证”等方法。暂时不了解没有关系,本期并不涉及这点。之后随着学习的深入,我们会一一介绍给大家。) 本期我们将对上期图二中几项信息给出示例,然后代码模拟难度的实现。 区块里的哈希是如何产生的? 如第四期(1)篇里讲到的,每个区块里包含了index,current hash,previous hash,timestamp,data,nounce等信息。current hash,就是将剩下的其他信息拼接成字符串,然后将这个字符串进行哈希的结果。正如上一个区块的...阅读全文

博文 2018-05-10 23:34:38 kakushao

利用 ApsaraDB For SQL Server各版本高效而低廉地实现关键业务需求

1. 什么是SQL Server多版本 微软的SQL Server除了不断迭代的版本升级外,还有从功能差异上分为几个不同的版本。 SQL Server 2012有企业版、商务智能版、标准版、开发版、Web版,当然还有一个入门版本Express。SQL Server2014/2016,只有企业版、标准版、开发版、Web版,也有一个入门版本Express。这些版本的应用场景是不同的,这里有详细的解释: Enterprise 作为高级版本,SQL Server Enterprise 版提供了全面的高端数据中心功能,性能极为快捷、虚拟化不受限制,还具有端到端的商业智能 ,可为关键任务工作负荷提供较高服务级别,支持最终用户访问深层数据。 Standard SQL Server...阅读全文

以太坊源码分析—Ethash共识算法

Ethereum当前和Bitcoin一样,采用基于工作量证明(Proof of Work,PoW)的共识算法来产生新的区块。与Bitcoin不同的是,Ethereum采用的共识算法可以抵御ASIC矿机对挖矿工作的垄断地位,这个算法叫做Ethash。 为什么要反ASIC PoW的的核心是Hash运算,谁的Hash运算更快,谁就更有可能挖掘出新的区块,获得更多的经济利益。在Bitcoin的发展过程中,挖矿设备经历了(CPU=>GPU=>ASIC)的进化过程,其中的动机就是为了更快地进行Hash运算。随着矿机门槛地提高,参与者久越来越少,这与区块链的去中心化构想背道而驰。因此,在共识算法设计时,为了减少ASIC矿机的优势(专用并行计算),Ethereum增加了对于内存的要求,即在进行挖矿的过程中,...阅读全文

博文 2018-11-13 20:34:39 187J3X1

如何创建NEO轻客户端

自NEO品牌升级以来,社区的建设蒸蒸日上,开发者的热情与日俱增。伴随着社区的极具扩张,一些底层技术基础性教程的补充完整变得至关重要。目前很多开发者身体力行的投入到NEO技术社区生态的建设当中,比如neo-swift,它是一个可实现与NEO区块链交互功能的轻客户端,主要用Swift-4语言编写。尽管它目前是一个轻客户端,但不代表以后就不会扩展为全节点客户端。本文梳理了neo-swift的运作需要哪些支持,希望大家在读完这篇博客后能了解区块链的内里运作机制,也希望本文能激励开发者在NEO区块链上创建下一个项目。为什么?对于任何项目而言,第一个问题永远是项目的创建目的的是什么,neo-swift项目创建主要出于4个原因。1.开发者想要开发分布式iOS应用,且应用广度越来越广。2. 建立一个开发者友...阅读全文

博文 2018-10-30 05:34:42 NEO爱好者

决定以太坊未来的3个重要项目

在过去的几年里,以太坊已经成为加密货币领域最重要的项目。 作为市场中大多数代币的 底层基础设施,以太坊网络的健康对于加密数字币生态系统中的其他环节至关重要,以太坊 也一直在努力跟上增长。 交易容量一直困扰着以太坊网络,以至于许多专家推出了辅助项目 来创建替代性区块链,以便从头解决一些限制。 然而,以太坊团队并没有闲着,目前已经 有几个项目作为以太坊基金会的一部分进行孵化,重点就是解决当前版本的以太坊中的一些 基本限制。 以太坊的第二层扩容解决方案改进了以太坊网络的一些基本方面,如共识协议或其安全模型。 考虑到以太坊公共区块链的规模和活跃度,你可以想象在不中断网络的情况下实施这些增强 措施是一项巨大的挑战。 虽然以太坊网络有好几个第二层扩容项目,但有三个以及接近全面...阅读全文

golang-quick-sort

```go package main import ( "fmt" ) func main() { var arr = []int{6, 5, 5, 3, 1, 8, 7, 2, 4, 9} start := 0 end := len(arr) - 1 fmt.Println(arr) QuickSortRecursive(arr, start, end) } func QuickSortRecursive(arr []int, start int, end int) { if start >= end { return } k := arr[end] left := start right := end - 1 for left < right { for arr[left] < k &&...阅读全文

博文 2018-01-06 16:11:24 freedbg

兄弟连区块链入门教程以太坊源码分析hashimoto源码分析(一)

兄弟连区块链入门教程以太坊源码分析hashimoto源码分析(一),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。Hashimoto :I/O bound proof of workAbstract: Using a cryptographic hash function not as a proofofwork by itself, butrather as a generator of pointers to a shared data set, allows for an I/O boundproof of work. This method of pr...阅读全文

博文 2018-10-24 14:34:41 兄弟连区块链培训

【以太坊源码解析】-区块数据结构

区块数据结构 在区块链中,区块是存储有价值信息的块。这是任何一种加密货币的本质。除此之外,区块还包含一些技术信息,比如它的版本、当前时间戳和前一区块的散列值(哈希值) Block(区块)是Ethereum的核心数据结构之一 * 所有账户的相关活动,以交易(Transaction)的格式存储,每个Block有一个交易对象的列表 * 每个交易的执行结果,由一个Receipt对象与其包含的一组Log对象记录 * 所有交易执行完后生成的Receipt列表,存储在Block中(经过压缩加密) * 不同Block之间,通过前向指针ParentHash一个一个串联起来成为一个单向链表,BlockChain 结构体管理着这个链表 * Block结构体基本可分为Header和Body两个部分 Block: 表...阅读全文

博文 2018-10-15 20:34:38 jincheng828

用 golang 实现区块链系列四 | 交易 1

介绍 交易是比特币的核心,而且区块链的唯一目标就是安全可靠地存储交易信息,而且没人可以在它们被创建之后修改它们。今天我们要开始实现交易。但是由于这是一个比较大的话题,因此我会分成两个部分:这一部分,我们会实现交易的通用机制,在第二部分会继续完成细节部分。 由于代码变化会比较大,所以没有必要全部都解释一下,你可以在这里找到所有的变化。 没有勺子 如果你曾经做个 web 应用,为了实现支付系统,可能会在数据库里创造这么几个表: accounts 和 transactions。账户表会存储用户信息,包括个人信息和余额,另一个交易标会存商品中关于钱从哪个账户转给另一个账户的信息。比特币中,支付完完全全是另一种方式。这里: 没有账户 没有余额 没有地址 没有币 没有发送者和接受者 因为区块链是一个公共...阅读全文

博文 2018-11-19 20:34:50 小马哥_Magical

兄弟连区块链培训分享Go语言-make和new

“区块链是一门集合密码学、共识算法、智能合约、超级账本等多门技术的复杂性综合学科。”尹正表示,区块链培训机构的师资质量及其对区块链行业的认知水平参差不齐,普通消费者也无从考究。 Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。golang 中有两个内存分配机制 :new和make,二者有明显区别. new:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。其自身是一个指针.可用于初始化任何类型 make: 返回一个有初始值...阅读全文

博文 2018-08-21 14:34:50 兄弟连区块链培训

区块链 + 大数据:EOS存储

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 谈到区块链的存储,我们很容易联想到它的链式存储结构,然而区块链从比特币发展到今日当红的EOS,技术形态已经演化了10年之久。目前的EOS的存储除了确认结构的链式存储以外,在状态存储方面有了很大的进步,尤其是引入了MongoDB plugin以后,可以将功能有限的状态库搭上大数据的班车。本文将全面介绍EOS的存储技术。 EOS 存储,Merkle Tree,mongodb,chainbase,源码学习,context_free_actions EOS的链式存储结构EOS的区块数据结构如下: field explanation timestamp 时间戳 producer 生产者 confirmed 生产者确认数 p...阅读全文

博文 2019-09-16 12:32:39 链客

区块链教程Fabric1.0源代码分析Orderer multichain

区块链教程Fabric1.0源代码分析Orderer multichain,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric 1.0源代码笔记 之 Orderer #multichain(多链支持包) 1、multichain概述 multichain代码集中在orderer/multichain目录下,目录结构如下: manager.go,Manager接口定义及实现。 chainsupport.go,ChainSupport接口定义及实现。 systemchain.go,system chain。 2、Manager接口定义及实现 2.1、Ma...阅读全文

博文 2018-11-06 14:34:45 兄弟连区块链培训

Golang 优化之路——bitset

写在前面 开发过程中会经常处理集合这种数据结构,简单点的处理方法都是使用内置的map实现。但是如果要应对大量数据,使用map占用内存大的问题就会凸显出来。内存占用高又会带来一些列的问题,这里就不展开说了。还有就是,大量数据存放于map,查找的哈希算法消耗也会很高。这时就该考虑对数据结构进行优化。之前浏览awesome-go时发现了一种叫bitset的数据结构,今天就介绍一下它。 bitset 简介 首先这是一个数据结构。从名字set不难发现,这是一个集合的数据结构。bit的含义也比较好懂,通过set是通过bit实现的。如果你需要一个集合,正好集合内的元素都是正整数,那么用这个就没错了。 Example import "github.com/willf/bitset" var b bitset...阅读全文

节操,代码,修养,妹子和其他(Go语言版)

Festival & Fuck, Coding, Inner depth, Sister and Others. 某些文章会提到《为什么Go语言这么不受待见》,《真的没必要浪费心思在 Go 语言上》,《我为什么放弃Go语言》,《Why worse is better》等话题。经常重温这些话题,每次都会有新发现。最忌手里有了一个语言,心里便容不下另一个语言。 忽略细节、语法或者设计,Go语言各种好用。考虑到这些因素,Go被喷出翔都不为过。 本文不打算在细节、语法或者设计上扯淡,只举些例子,说一说如何用Go语言写出还凑合的代码。 类、对象、属性,可能还夹杂着一点设计模式 //代码来自 https://github.com/xgdapg/xconn/blob/master/xconn.go,已验证...阅读全文

go公链实战0x00区块链基础结构

堕落了一段时间,终于又找回了学习的动力,满血归来。。。 我们知道在如火如荼的区块链应用红海,goLang越来越多地发挥着不可替代的作用。一方面取决于其语法的简单性,一方面其具备C++高效处理的特性。今天,我们就用go语言开始构建一个简单但是具备区块链完整功能的公链项目。 由于之前已经用Python构建过简单的区块链结构,所以对区块基本结构的东西不再做详细赘述。 废话少说上干货 区块Block Block type Block struct { //1.区块高度 Height int64 //2.上一个区块HAsh PrevBlockHash []byte //3.交易数据 Data []byte //4.时间戳 Timestamp int64 //5.Hash Hash []byte } 设...阅读全文

博文 2018-06-22 21:34:38 chaors

doublejump - 快速、简洁的一致性哈希库,Google Jump 算法的改进版

Overview doublejump 的核心是 Google Jump 一致性哈希算法,这个实现弥补了该算法的最大缺点:不能删除节点。 传送门 https://github.com/edwingeng/doublejump Benchmark BenchmarkDoubleJumpWithoutLock/10-nodes 50000000 27.6 ns/op BenchmarkDoubleJumpWithoutLock/100-nodes 30000000 42.7 ns/op BenchmarkDoubleJumpWithoutLock/1000-nodes 30000000 54.1 ns/op BenchmarkDoubleJump/10-nodes 20000000 72.9 n...阅读全文

博文 2018-11-19 19:34:40 edwingeng

区块链开发者教程大汇总,Php/Python/C#/Node/Go

Mixin Network是一个免费,1秒确认的高速转账网络。我们撰写了基于多种语言的系列教程,开发者可以15分钟搭建一个比特币收款应用。 教程 PHP Go Node.js C# Python 创建机器人接收发送消息 php 1 Go 1 Node.js 1 C# 1 python 1 机器人接收发送比特币 php 2 Go 2 Node.js 2 C# 2 python 2 创建比特币钱包,转账 php 3 Go 3 Node.js 3 C# 3 python 3 买卖比特币 php 4 Go 4 Node.js 4 C# 4 Mixin Network开发者资料汇...阅读全文

博文 2019-04-12 14:34:44 Mixin_Network

【区块链Go语言实现】区块链基本原型

链客,专为开发者而生,有问必答!此文章来自[区块链技术社区](https://www.liankexing.com),未经允许拒绝转载。 0x00 介绍区块链(Blockchain)是21世纪最具革命性的技术之一,目前它仍处于逐渐成熟阶段,且其发展潜力尚未被完全意识到。从本质上讲,区块链只是一种记录的分布式数据库。但它之所以独特,是因为它并不是一个私有的数据库,而是一个公共数据库,也就是说,每个使用它的人都有一份完整或部分的数据副本。并且,只有在数据库的其他持有者同意的情况下,才可以向区块链中添加新的记录。此外,正是区块链使得加密货币和智能合约成为可能。在本系列文章中,我们将基于区块链构建一种简单的加密货币。0x01 区块首先,我们从“区块链”中的“区块”介绍开始。在区块链中,区块是存储有价...阅读全文

博文 2019-08-16 12:32:43 链客区块链技术问答社区

面向 Go 开发人员的链代码深入研究,第 3 部分: 为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序

面向 Go 开发人员的链代码深入研究,第 3 部分 为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序深入剖析 Node.js 客户端应用程序的组成部分 Varun Ojha2017 年 8 月 30 日发布 系列内容:此内容是该系列 # 部分中的第 # 部分: 面向 Go 开发人员的链代码深入研究,第 3 部分http://www.ibm.com/developerworks/cn/library/?series_title_by=**auto**敬请期待该系列的后续内容。此内容是该系列的一部分:面向 Go 开发人员的链代码深入研究,第 3 部分敬请期待该系列的后续内容。 获取最佳免费工具、培训和社区资源的每月集萃,帮助您开始使用区块链。最新一期 | 订...阅读全文

博文 2017-11-29 06:28:32 www.ibm.com

2020 区块链 golang 版本(8)

封面 查询余额(UTXO) 上面代码实现 Alice 通过挖矿得到她的第一笔交易 12.5 比特币奖励,现在我们需要实现可以查询 Alice 余额(UTXO)的方法。 图 我们可以通过追踪 John 交易来计算其 UTXO,如图 蓝色表示交易输入 黄色和绿色表示交易输出,其中绿色表示没有被话费的输出 那么我们在统计某一个用户UTXO 不仅要看和他相关输出,还要看和他相关输入,以便确认某一笔输出是否被使用,如果被使用我们就可以跳过该输入对应输出,这里大家可能对输入和输出还不算理解,这里输入和输出可以理解对象,输入就是用户花费的,而输出用户得到比特币。这个方法我们写到区块链(BlockChain)下命名为 FindUTXOs。我先把代码抛出来 func (bc *BlockChain) Find...阅读全文

博文 2020-04-30 03:32:46 zidea

区块链之链码升级

进入区块链peer节点的证书文件夹,在客户端下,路径为:```crypto-config/peerOrganizations/org2.cloudchain-dev.querycap.com/users/Admin\@org2.cloudchain-dev.querycap.com/)```peer执行脚本:```#!/bin/bashPATH=`pwd`/../bin:$PATHexport FABRIC_CFG_PATH=`pwd`export CORE_PEER_TLS_ENABLED=trueexport CORE_PEER_TLS_CERT_FILE=./tls/client.crtexport CORE_PEER_TLS_KEY_FILE=./tls/client.keyexpo...阅读全文

用Go构建区块链——1.基本原型

本篇开始进入"用Go构建区块链"系列,主要对原文进行翻译。本篇对应原文如下: Building Blockchain in Go. Part 1: Basic Prototype 话不多说,开始进入正文。 1、介绍 区块链是21世纪最具革命性的技术之一,它仍在逐步发展中,并且其潜力还未被充分认识。本质上,区块链只是一个分布式数据库而已。但是,它的独特之处在于它不是一个私有的数据库,而是一个公共的,即每个使用它的人都拥有它的全部或部分副本。只有得到其他数据库管理员的同意,新的记录才能被加入。正因为由此区块链,才使得加密货币和智能合约成为可能。 在本系列文章中,我们将构建一个基于简单区块链实现的简单加密货币。 2、区块 我们从"区块链"的"区块"部分开始。在区块链中,它存储有价值的信息。例如,比...阅读全文

博文 2019-03-01 14:34:45 我是李小胖

Hyperledger Fabric 命令详解之“ generate ”

sudo ./byfn.sh -m generate a@ubuntu:~/hyfa/fabric-samples/first-network$ sudo ./byfn.sh -m generate Generating certs and genesis block for with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] y proceeding ... /home/a/hyfa/fabric-samples/first-network/../bin/cryptogen > 利用cryptogen tool 生成证书 Generate ...阅读全文

博文 2018-08-06 11:34:50 kakushao

【跟着我们学Golang】Go语言全平台安装

学习Go语言的第一步当然是要先安装Go语言的环境,毕竟,没有这个环境咱们什么都做不了。但是在安装环境之前咱们先了解一下Go涉及到的环境变量。这里介绍几个比较常用的Go语言环境变量。 GOROOT Go的安装路径,windows默认安装在'c:/go'路径下,Linux/macos下默认安装在'~/go'路径下 GOPATH Go 语言源码文件、包文件和可执行文件的路径,换句话说,GOPATH指定的是存放项目相关的文件路径 GOOS 电脑的操作系统标识。如Mac下为“darwin“,windows下为”windows“ GOARCH 电脑的处理器架构,如386,arm或amd64 GOBIN 编译文件的安装位置,默认$GOROOT/bin 下面开始今天的正题,安装Go环境 Go语言的安装过程跟...阅读全文

博文 2019-04-15 17:34:41 搜云库技术团队