本人前腾讯财经架构师,正在看比特币 BTCD 代码,Q527851395,验证词 BTCD,新手勿扰,只招老鸟。
BTCD代码非常优秀,我已经学了一部分,你尽管问我,我知无不言,言无不...阅读全文
BTCD代码非常优秀,我已经学了一部分,你尽管问我,我知无不言,言无不...阅读全文
喧鸟覆春洲,杂英满芳甸。在春意盎然,繁花似锦的4月天,为了丰富员工的业余生活,促进员工之间的交流沟通,加强团队文化建设,增强团队凝聚力,2017年4月27日,第一季度,数据宝(上海、北京分公司)员工前往江苏常熟蒋巷生态园开展为期2天的拓展训练,期以最强健的体魄,最刚烈的意志以及最顽强斗志迎接数据宝未来。  人才是数据宝核心竞争力 人才是一个企业发展的核心竞争力,是先进生产力和先进文化的重要创造者和传播者,是互联网社会发展的宝贵资源。数据宝公司拥有员工500余人,其中博士学位占比20%,硕士学位40%,本科学位...阅读全文
1. 概述 指标统计是实现APM(Application performance management)的基础,通常通过一些指标的统计以及上报,我们可以了解程序的运行状况,及时发现程序的问题,提前预估系统瓶颈.指标(metric)目前的实现有metrics,这是java的实现,可以直接引入程序作为库使用.go语言的实现见go-metrics.另外,这里只是将指标在内存中进行处理及计算,如果我们想要展示,需要将数据抛出来,这里可以抛到日志里,也可以抛到时序数据库,最简单的做法就是直接抛到监控系统进行绘图或者报警.因此本文后面将讲解各指标的含义以及如何将计算好的数据抛到监控open-falcon 2.指标统计方式 2.1 Meters 用于计算一段时间内的计量,通常用于计算接口调用频率,如QPS...阅读全文
Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。 General %v 以默认的方式打印变量的值 %T 打印变量的类型 Integer %+d 带符号的整型,fmt.Printf("%+d", 255)输出+255 %q 打印单引号 %o 不带零的八进制 %#o 带零的八进制 %x 小写的十六进制 %X 大写的十六进制 %#x 带0x的十六进制 %U 打印Unicode字符 %#U 打印带字符的Unicode %b 打印整型的二进制 Integer width %5d 表示该整型最大长度是5,下面这段代码 12 fmt.Printf("|%5d|", 1) fmt.Printf("|%5d|", 1234567) 输出结...阅读全文
关于Bitcoin的说明:https://zh-cn.bitcoin.it/wiki/%E9%A6%96%E9%A1%B5 (中文) Go语言实现:https://blog.conformal.com/btcd-a-bitcoind-alternative-written-in-go...阅读全文
go语言中的零值是变量没有做初始化时系统默认设置的值。 var b bool // bool型零值是false var s string // string的零值是"" var a *int var a []int var a map[string] int var a chan int var a func(string) int var a error // error是接口 // 以上六种类型零值常量都是nil 所有其他数值型的类型(包括complex64/128)零值都是0,可以用常量表达式代表数值0的任何形式表示出来。 对于以上各种类型都可以通过==条件判断是不是零值: if <变量> == <零值表达式> { } 但是类型不能混用,变量类型和零值类型必须匹配。 结构也有零值。如果...阅读全文
如题,新人不理解.....阅读全文
本来想写一个例子来给团队的人阐述一下Go中的对象复用思想,写完后发现这种思想也许某些同学还不知道,现分享出来。 // Go中为了减少海量的内存分配,控制垃圾回收时间,对于热点数据采用池的思想去处理是 // 非常棒的,下面的例子就是一个简单的tcp读取缓存池复用 // 实现了一个读取tcp长连接的buffer池,每次读取一条新连接时,先去池里读取 // 如果不存在,则创建新的 // 注意buf在放回池里时,没有进行归零处理,因为conn.Read每次读取时候, // 都会从buf.b[0]的位置开始写 package main import ( "fmt" "net" "sync" ) var bufPool sync.Pool type buf struct { b []byte } fun...阅读全文
招聘c++、golang工程师,3年经验左右,基础扎实,有区块链基础就太好了。 可以加我私信mizha1990,不是90年哈,也不是猎头和HR!!!自己组招...阅读全文
最近要做一个小工具,对uint32的整数进行逻辑位操作,想请教大家一下,想实现下面的功能,有没有标准库的支持,省得自己再开发了。 (1)对某连续的几个bit进行赋值; (2)循环左移或者右移; (3)左移低位补零,或者右移高位补零。 麻烦各位专家指点一下! 谢谢...阅读全文
由于Java AES256 加密库受出口限制,所以只采用AES 128加密。 互通要达到的要求 加密位数:统一采AES 128 分组加密条件:CBC/PKCS#5PADDING 密钥填充方式一样 因为android的默认填充与java默认不一样,而且在不同的JDK版本里也会出现key填充不一致的情况,所以自己手动填充,Go也采取与java一样的填充方式:不满16位补零。AES两个平台均要实现AES的加密与解密操作。加密结果转成base64。 关键代码如下所示:go: //填充 func paddingkey(key string) (string){ var buffer bytes.Buffer buffer.WriteString(key) for i:=len(key);i<16;i+...阅读全文
下载“qunqun”,搜索群:go语言,输入下图邀请码,即可参与内测,获得5个群币,还有更多群福利等着你。  func extract(tarfile string) { reader, err := os.Open(tarfile) if err != nil { fmt.Printf("ERROR: cannot read tar file, error=[%v]\n", err) return } defer reader.Close() tarReader := tar.NewReader(reader) for { header, err := tarReader.Next(...阅读全文
开场白:净化币圈环境从我做起,大家好,我是驴把头。今天给大家推荐一款百倍币—DERO,之前也写过DERO的相关文章,没看过的可以翻阅一下。DERO:基于Dag和CryptoNote协议,通过Golang语言从零开始编写,并融合了Bulletproofs防弹技术+环签名等先进的匿名技术,创新了DERO系统(DEROFilesystem)和匿名合约的新一代的完全匿名(交易匿名+合约匿名)的匿名公链。 dero 直入主题,接下来我们从:基本面、技术优势、Roadmap、dapp开发、社区建设等方面对DERO进行深度分析。基本面、规格 dero规格 项目优势DERO:唯一完全匿名加密货币(交易匿名+合约匿名)目前tps:1000+(高压),匿名币种速度极快比特币因匿名性极差丧失了匿名性比特币使用的混...阅读全文
在上一课中,我们介绍了如何在OceanOne交易比特币。OceanOne支持交易任何Mixin Network上的token,包括所有的ERC20和EOS token,不需要任何手续和费用,直接挂单即可。下面介绍如何将将一个ERC20 token挂上OceanOne交易!在掌握了ERC20 token之后,就可以把任何token在Ocean上买卖。 此处我们用一个叫做Benz的ERC20 token为例。这个token已经被充值进Mixin Network,你可以在区块链浏览器看到这个token在Mixin Network内部的总数和交易 预备知识: 先将Ben币存入你的钱包,然后使用ReadAssets API读取它的UUID. 取得该币的UUID 调用 ReadAssets API 会返...阅读全文
比特币的交易第一笔交易比较特殊,他是coinbase交易,矿工的收益。金额每4年减少一半,从2009年一开始一个区块奖励50BTC、后来减少为了25个BTC、一直到18年 12.5BTC。总共有2100万BTC。交易和我们的银行的转账非常不同,比特币中没有记录账户的信息、而是交易的信息。go实现交易 demo本文链接: https://dreamerjonson.com/2018/12/13/golang-47-blockchain-transation/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处...阅读全文
版权声明:本文为Sunface(孙飞)原创文章,转载请注明出处 https://blog.csdn.net/abv123456789/article/details/51153474 本来想写一个例子来给团队的人阐述一下Go中的对象复用思想,写完后发现这种思想也许某些同学还不知道,现分享出来。 // Go中为了减少海量的内存分配,控制垃圾回收时间,对于热点数据采用池的思想去处理是 // 非常棒的,下面的例子就是一个简单的tcp读取缓存池复用 // 实现了一个读取tcp长连接的buffer池,每次读取一条新连接时,先去池里读取 // 如果不存在,则创建新的 // 注意buf在放回池里时,没有进行归零处理,因为conn.Read每次读取时候, // 都会从buf.b[0]的位置开始写 packa...阅读全文
生成比特币地址123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293package mainimport ( "crypto/sha256" "golang.org/x/crypto/ripemd160" "fmt" "math/big" "encoding/hex")//base58编码var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUV...阅读全文
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的哈希运算的难度方...阅读全文
package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:2} //%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。 fmt.Printf("%#v\n", p) // main.point{x:1, y:2} //需要打印值的...阅读全文
本来想写一个例子来给团队的人阐述一下Go中的对象复用思想,写完后发现这种思想也许某些同学还不知道,现分享出来。 // Go中为了减少海量的内存分配,控制垃圾回收时间,对于热点数据采用池的思想去处理是 // 非常棒的,下面的例子就是一个简单的tcp读取缓存池复用 // 实现了一个读取tcp长连接的buffer池,每次读取一条新连接时,先去池里读取 // 如果不存在,则创建新的 // 注意buf在放回池里时,没有进行归零处理,因为conn.Read每次读取时候, // 都会从buf.b[0]的位置开始写 package main import ( "fmt" "net" "sync" ) var bufPool sync.Pool type buf struct { b []byte } fun...阅读全文
package main import ( "fmt" "runtime" "sync" "time" ) var c int func counter() int { c++ return c } func main2() { a := 100 go func(x, y int) { time.Sleep(time.Second) println("go:", x, y) }(a, counter()) a += 100 println("main:", a, counter()) time.Sleep(time.Second * 3) } // 进程退出不会等待并发任务结束,可用通道阻塞,然后发出退出信号 func main3() { exit := make(chan struct{}...阅读全文
严格来说,tx-signer并不属于SDK,它是bytomd中构建交易、对交易签名两大模块的java实现版。因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥。 如果你的目的是完全脱离于bytomd全节点,可能需要自己做更多额外的工作。比如,在构建交易时,需要花费若干个utxo(Unspent Transaction Output)作为交易的输入,如果没有全节点则需要自身来维护utxo。当使用tx-signer构建完成一笔交易并签名后,若没有全节点的帮助,也需要自己实现P2P网络协议将交易广播到其他节点。 本文不会对以上技术细节进行讨论,而是利用bytomd全节点查询可用的utxo构建交易,对交易进行签名并序列化后,同样使用bytomd提交交易。 准备工作 将M...阅读全文
当我们基于比原做应用的时候,在构建交易过程中会遇到以下两种情况。多个地址向一个地址转账,还有一种就是从一个地址分批次向多个地址转账。那我们今天就来介绍一下这两种交易构建的具体流程,以及贴出具体实现的代码。 链式交易 当我们从多个钱包地址一次性转到一个地址的时候,为了提高用户体验。我们可以选择链式交易,把多笔交易一次性打包。那我们下面就来看一下链式交易的流程。 接下来我们来看一下build-transaction接口的代码实现过程,代码如下: // POST /build-chain-transactions func (a *API) buildChainTxs(ctx context.Context, buildReqs *BuildRequest) Response { //验证请求id...阅读全文