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

Go语言atomic原子操作

atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的。 下面内容摘秒自《GO并发编程实战》—— 原子操作: CAS操作的优势是,可以在不形成临界区和创建互斥量的情况下完成并发安全的值替换操作。 这可以大大的减少同步对程序性能的损耗。 当然,CAS操作也有劣势。在被操作值被频繁变更的情况下,CAS操作并不那么容易成功。 原子操作共有5种,即:增或减、比较并交换、载入、存储和交换 1. 增或减 被用于进行增或减的原子操作(以下简称原子增/减操作)的函数名称都以“Add”为前缀,并后跟针对的具体类型的名称。 不过,由于atomic.AddUint32函数和atomic.AddUint64函数的第二个参数的类型分别是uint32和uint64,所以我们无法通过传递一个负的数值来...阅读全文

博文 2015-06-17 20:12:43 xcltapestry

【GoLang笔记】遍历map时的key随机化问题及解决方法

之前的一篇笔记曾分析过,Go的map在底层是用hashmap实现的。由于高效的hash函数肯定不是对key做顺序散列的,所以,与其它语言实现的hashmap类似,在使用Go语言map过程中,key-value的插入顺序与遍历map时key的访问顺序是不相同的。熟悉hashmap的同学对这个情况应该非常清楚。 所以,本文要提到的肯定不是这个,而是一个比较让人惊奇的情况,下面开始说明。 1. 通过range遍历map时,key的顺序被随机化 在golang 1.4版本中,借助关键字range对Go语言的map做遍历访问时,前后两轮遍历访问到的key的顺序居然是被随机化的! 这个现象在其它语言中是很少见的,比如C语言实现hashmap时,通常会用数组(即一段连续的内存空间)来存key,虽然key的...阅读全文

博文 2015-04-02 19:00:01 slvher

golang 内置函数new() 和struct{} 初始化的区别

new() 这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针。 在golang的代码定义如下: func new(t Type) *Type strut{} 直接使用struct{} 来初始化strut时,返回的是一个struct类型的值,而不是指针两者是不一样的 两者对比代码如下: type Student struct{ id int name string } func main(){ var s_1 *Student = new(Student) s_1.id = 100 s_1.name = "cat" var s_2 Student = Student{id:1,name:"tom"} fmt.Println...阅读全文

博文 2015-06-17 20:03:41 happinessaflower

墨链所填写的《SmartICO V1.1 待评估ICO项目问卷调查》

该问卷调查由墨链团队于2017年8月7日填写,墨链团队对所填内容真实性负责。免责声明:如无明显问题,我们将默认对贵方所填内容保持完全信任,任何由于所填内容的虚假、夸大等不诚信因素所造成的责任或影响,需要贵方自行承担。 问卷调查 说明:对问题作出回答时无需长篇累述,如无要求,通常每个问题的回答不建议超过200个字。1、请简述贵方的项目,包括但不限于应用场景、战略目标、核心技术创新、核心特点等(请用不多于200字尽可能让我们理解该项目)。墨链(InkChain),可概括为三个关键词:独创公有链、文化资产交易平台、分布式经济生态,是以“纸贵版权”团队为核心打造的,面向大文化产业的自主区块链底层和文化资产交易平台,以及由此构建的分布式经济生态。 墨链,在早期包含了墨链区块链底层框架,及构建于其上以I...阅读全文

博文 2017-08-09 04:05:17 币圈王大炮

Go大咖说第一期《比特币、区块链和Go开发》

个人介绍姜家志,2013 年开始接触比特币,之后开发了比太钱包,现在在比特大陆从事比特币相关的开发工作。引言大家好,我是姜家志首先感谢下谢大神的邀请,能有机会和大家进行交流,我是 2013 年开始接触比特币,当时花了很长时间在了解比特币原理和看比特币的源代码上。之后我们发现比特币没有好用的钱包,就开发了 "比太钱包"(bither), 比太钱包是中国人开发的唯一的一个上 bitcoin.org 的钱包,截图中就是比太钱包。另外的一个是 btc.com 钱包是我现在所在的公司开发的钱包,是由我们公司的欧洲团队开发的钱包。我从 2014 年开始接触 Go 语言,接触之后就深深的喜欢上了 Go, 之后就开始有计划地学习 Go 语言,自己做了几个 demo 性质的网站,主要是个人 blog、论坛、和...阅读全文

博文 2017-07-22 02:17:42 姜家志

Golang百万级高并发实例

前言 感谢Handling 1 Million Requests per Minute with Go 这篇文章给予的巨大启发。 基础 我们使用Go语言,基本上是因为他原生支持的高并发:Goroutine 和 Channel;Go 的并发属于 CSP 并发模型的一种实现;CSP 并发模型的核心概念是:“不要通过共享内存来通信,而应该通过通信来共享内存”。 简单用法 我一开始学习Go语言的时候,遇到大访问量的时候,会先创建一个带缓冲的channel,然后起一个Go协程来逐个读取channel中的数据并处理。说他是并发是因为他没有占用主线程,而是另起了一个协程独自运行。但是这没有实现请求之间的并发。特别注意:Go语言中的map不是并发安全的,要想实现并发安全,需要自己实现(如加锁),或者使用sy...阅读全文

博文 2019-01-16 00:35:11 wz669

猎链网:火币网区块链招聘信息汇总

招聘主体:火币网招聘人员:区块链工程师工作地址:北京学历要求:本科及以上工作年限:经验不限薪资待遇:25k-35k岗位职责:1.调研并关注区块链技术、主流数字货币钱包支付相关产品;2.负责数字货币钱包产品或业务运营后台产品设计;3.独立完成需求分析、产品原型的设计,输出高质量的PRD文档,协同团队高效进行产品迭代的PCDA循环,提升用户体验及业务目标。岗位要求:1.独立主导或负责过成功上线的APP、H5、业务后台项目;2.具备较强的学习、分析,执行能力,严谨的工作态度、强烈的责任心和团队精神;3.具备较强的规划和前瞻能力,抗压能力和跨部门沟通能力,能够站在不同角度思考问题,有效推进核心业务;4.S16、985 计算机、金融相关专业,一线互联网公司区块链、互联网金融、支付行业经验;5.了解区块...阅读全文

博文 2018-08-05 01:34:55 社群邦

【解读白皮书】公信宝

1.发起背景 2016年互联网金融的高速发展,以及个人征信和个人信息泄露的成为公众关注的焦点。互联网金融行业因为金融履约数据没有实现统一的共享和交易,整个行业风控水平较低,多头借贷问题严重。而传统数据交易所,包括政府或企业主导的中心化数据交易所、各细分行业公司组成的数据联盟、以及大数据征信公司,无一例外都没有发展起来,原因不是因为没有市场,而是传统数据交易所的解决方案存在巨大的漏洞,如数据“缓存沉淀”、对客户业务构成威胁、缺乏隐私保护、数据造假严重等问题,让企业不敢将重要的金融履约数据进行共享交易。 针对这些问题,目前只有区块链技术才能解决。在经过技术性、市场性的研究和发展方向的不断调整后,公信宝项目也由此定型。 2.项目简介 公信宝是去中心化数据交易所,区块链数据经济解决方案提供者,提供关...阅读全文

博文 2018-06-28 08:34:44 空灵一月

2018区块链技术与场景落地峰会诚邀您的参与

日程安排 9月6日 星期四 第一天 第一天主题:金融链场景落地 上午版块A 区块链投融资 下午版块 B 链场景落地——重塑金融 1220-1340 链龙颁奖典礼暨午餐会 1820 VIP路演晚宴 9月7日 星期五 第二天 第二天主题:其他链场景落地 上午版块 C 链场景落地——重塑供应链 上午版块 D 链场景落地——融入先进制造业 上午版块 E 链场景落地——区块链让其他应用产业新生 下午版块 F 链技术创新 9月6日 星期四 第一天 900AM - 1600PM 区块链智能制造高管培训班 9月7日 星期五 第二天 900AM - 1600PM 区块链金融高管培训班 三、拟定嘉宾 薛蛮子 著名天使投资人 张银海 闪电比特币中国社区负责人、千方基金创始人 周硕基 FBG基金合伙人 刘思宇 To...阅读全文

博文 2018-07-24 16:47:50 wei143224

区块链3.0时代:你现在所有的认知将会被颠覆

从区块链的价值被发现,到区块链应用实际落地之前,区块链一直是个概念性的东西。虽然各大媒体报刊将区块链炒得沸沸扬扬的,世界上诸多国家也对区块链给出了相应的重视,但是除了一些专业人士,很少有人知道它究竟有多重要。麦肯锡公司最近向美国联邦保险咨询委员会提交了一份区块链技术报告,报告把2009年以2016年称为“黑暗时代”,其间所有区块链解决方案都基于比特币,而区块链的新时代将从2016年开始,超过100种区块链技术解决方案已被探索。这意味着区块链已经走出了概念性阶段,接下来就将会跨入区块链3.0时代,真正融入到我们的生活当中了。那么摆脱概念定义进入3.0时代,真正融入到我们的生活中去,并呈井喷式发展的区块链,对当今社会的影响又有多大呢?澳大利亚BTL公司主席John Joseph Foley表示,...阅读全文

博文 2017-08-08 10:05:15 北邮区块链张权

区块链+5G=智慧城市?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 智慧城市是一个非常大的产业范畴,同时包括面向政府的智慧治理、面向市民的智慧民生和面向产业的智慧经济三大板块,涵盖了智慧政务、智慧环保、智慧安防、智慧交通、智慧教育、智慧医疗、智慧生活、智慧企业等数十个场景。 智慧城市场景的实现依靠多种技术的综合运用,从信息数据的采集、整合、发布和分析,最后反馈到实际应用场景中。能够实现这一过程并在智慧城市中广泛应用的技术有:物联网、云计算、生物识别、地理空间技术、区块链、人工智能。这些技术相互配合,从上至下共同筑起智慧城市的技术基础。 一、智慧城市应用场景与技术架构 支撑智慧城市的技术首先就看物联网(IOT)和地理信息系统(GIS),这两大产业链的上层建筑成型都需要依赖于5G网络...阅读全文

golang对共享内存的操作

不同进程间的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制。 共享内存用到的是系统提供的mmap函数,它可以将一个文件映射到虚拟内存的一个区域中,程序使用指针引用这个区域,对这个内存区域的操作会被回写到文件上,其函数原型如下: void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 参数fd为即将映射到进程空间的文件描述字,一般由open()返回,同时,fd可以指定为-1,此时须指定f...阅读全文

博文 2014-10-04 19:27:13 壬癸甲乙

区块链基础入门

一、区块链产品概览 1.1 区块链产品及 区块链产品主要有:底层平台、开放平台、应用场景 1.2 区块链产品特点 底层平台 通用基础设置 与业务场景无关 技术门槛较高 多技术结合:分布式存储+点对点网络+密码学等等 开放平台 与业务场景相关性低 面向区块链应用开放者 起步探索阶段,成熟产品相对较少 应用场景 可应用的领域和场景广泛 与业务场景密切相关 具有可拓展性 易形成价值网络 二、底层平台 底层平台有:公有链、 联盟链、私有链 2.1 底层平台-公有链 向全世界所有人开放,每个人都能成为系统中的一个节点参与记账的区块链,它们通常将激励机制和加密数字验证相结合,来实现对交易的共识。 2.2 底层平台-联盟链 若干个机构共同参与记账的区块链,即联盟成员之间通过对多中心的互相信任来达成共识。联...阅读全文

Go语言slice的那些坑

Go语言Google开发的适用于多核编程的语言。我感觉它像是C语言的现代版本,简单,并发支持友好,部署轻松。GO语言中保留关键字就只有25个,这也足以说明它的学习成本并不高。 然而,Go语言里面slice这个东西并不简单。初学者容易掉入坑中。此文件就试图把slice给讲解清楚。 下面先讲一下slice的一些基本特性。 1. slice内部有三个变量,分别是:ptr, len, cap ptr是用来存储数据的数组 cap是ptr数组的长度 len是实际数组的长度 2. 如何在初始化的时候,指定slice的长度? a := make([]int, 10) 这里make的时候,第2个参数,就是这个slice的长度。 这个时候它的capacity是多少呢? fmt.Println(cap(a)) 这...阅读全文

博文 2016-03-31 19:00:05 zhanchenxing

【项目分析】公信宝GXS

作为一个区块链超级小白,最开始的时候我以为公信宝就等同于布洛克城app,就是上传我们的数据,然后挖矿。在读了项目白皮书和其它资料后,才知道公信宝的世界超越我的想象,让我们一起来看看吧。 一、项目简介 GXChain(公信链)是公信宝团队打造的一条数据交换公有区块链,是公信宝数据交易所的底层链,不仅支撑着公信宝数据交易所高频的数据交易交换,还支持开发者开发应用。在公信链上开发应用,不仅可以利用区块链的技术特性,还可以获得各行业多维度数据的支持,做出非常落地于民生的有价值应用。 已经开发出来并上线的应用,证明了公信链在商业上的可用性,基于GXChain的第一个企业级应用——公信宝去中心化交易所,已经在2017年9月24日正式商业化落地。 基于公信链的第二个应用,也是第一个大型个人端应用——公信宝...阅读全文

博文 2018-06-28 18:34:40 不可一日不拱卒

区块链的商业应用:超级账本(Hyperledger)

背景 超级账本(Hyperledger)是linux基金会下的众多项目中的一个。是由IBM、因特尔,还有金融公司,GP摩根以及其他联合机构于2015年提出来的区块链项目,超级账本还包括4个框架项目:Sawtooth、Iroha、Fabric、Burrow。其中广为人知的是Fabric。当前成员大约140个,其中1/4来自中国,现在中国技术组由万达、华为、IBM担任主要负责,负责中国会员和中国需求的提供,以及推进代码。 超级账本是什么? 正如Hyperledger官方网站上的描述,这一项目的目标是发展一个跨行业的开放式标准以及开源代码开发库,允许企业创建自定义的分布式账本解决方案,以促进区块链技术在商业当中的应用。 我的理解,超级账本Fabric是一门编程语言,它定义了编程标准,函数库等基础规...阅读全文

博文 2017-06-23 14:07:18 乔延宏

区块链数字货币承兑商支付系统开发

区块链数字货币承兑商支付系统开发 数字货币承兑系统怎样的? 入金简述:加密支付系统运用了类似于支付宝的担保交易机制,结合独有的点对点传输技术、实时清算引擎、智能数字钱包、极高的网络平安体系,跨交易所最优价格兑换引擎等区块链技术。终端客户只需在入金界面设置好充值金额,向USDT承兑商支付人民**//币,即可自动完成数字货币的购买、充值、交割、双向承兑等所有操作,五分钟之内把数字货币胜利支付和清算至平台商户后台,完成客户入金操作。 同样的原理,终端客户出金,提交出金申请确认后,系统将自动把相应数量的数字货币折算成人民币,由USDT承兑商结算至客户绑定银行卡。客户入金与出金均通过数字货币承兑商进行结算,与平台没有直接的资金往来。整个支付交易过程简化为:基于区块链技术+预先冻结锁定+人工审核(也可以...阅读全文

博文 2019-08-22 17:55:55 d13826553501

golang中的append函数详解

1. append函数是用来在slice末尾追加一个或者多个元素。 2. 当追加元素时,发现slice的**len>cap**时,会重新开辟一个**2*cap**的内存空间去存储追加过元素的slice。 3. 如果追加元素后slice的**len<=cap**,则append返回的新生成的slice的内存地址**依旧**是传入的slice参数的内存地址。 ```go testSlice := make([]int, 0) testSlice = append(testSlice, 0) fmt.Printf("len: %d, cap: %d, data:%+v \n", len(testSlice), cap(testSlice), testSlice) //len: 1, cap: 1,...阅读全文

博文 2018-11-12 14:56:01 lijingtian

源中瑞区块链C2C承兑支付系统搭建

源中瑞区块链C2C承兑支付系统搭建 区块链支付系统有用户和商户两种版本。 用户:是对为数币资产有一定了解的普通消费者使用,除了管理数字资产外,通过对接合作的线上或者线下商户,直接可以用钱包进行支付。 商户:商家版主要是为加盟运营平台的商户提供结算管理,商户可以是线上商城或者线下实体店。 源中瑞科技拥有区块链技术核心研发工程师团队,区块链项目技术顾问微ruiec1688,区块链技术领域技术专家以及参与多年金融交易系统的研发工程师。在保障区块链系统的安全和稳定技术方面有大量经验。 区块链承兑支付如何解决行业痛点? 1.“币走通道,钱走线下”新模式,平台、商户不直接接触法币 2.以承兑商来做收款方,可实现资金分流处理解决入金问题? 3.承兑商采用账户轮询,可实现即时到账,T+0结算 4.数字资产作...阅读全文

为什么我要选择erlang+go进行服务器架构

服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 估计很多同学看到这里都会觉得迷惑,go的大名已经如雷贯耳了,但是erlang?这个东东是神马?难道是编程语言?怎么从来没听说过。 这里请允许我先介绍一下使用Erlang开发的比较有名的应用: 一:whatsapp 只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang——一种诞生于上世纪80年代的编程语言,终于在此时走到了聚光灯下。 这个应用把erlang的特性发挥到了极致,利用到了它最好的vm、 集群基础设施、数据库mnesia, 消除了非常多的数据Scale、内存池和锁的问题, 提到的技术和修正点非常值得我们参考。 虽然大部...阅读全文

博文 2015-02-23 23:00:00 robslove

Golang直接操作共享内存

前言 故事起源于要搭一个高性能的日志中心。当然使用了elk这一套。但是,对于logstash来说,它主要使用的是文件日志的方式了捕捉log。而写文件日志的话会非常慢。对于实时日志要处理滚动的日志更是这样,每次检查是否需要流动日志,然后打开日志,然后写入,然后关闭,当然这中间可以优化。这一切都是那么慢,发起了n个系统调用,硬盘寻道等。这时候想到了用共享内存来通信。 共享内存的基本知识 要使用共享内存要执行以下几步: 发起一个系统调用,让系统帮你生产一块内存,或者取得一块已经存在的内存来使用。 把内存attach到当前进程,让当前进程可以使用。大家都知道,我们在进程中访问的是虚拟内存地址,系统会把它映射到物理内存中。如果没有这一步,第1步创建的内存就不能在当前进程访问。 这时就可以对内存进程读写...阅读全文

博文 2017-07-02 16:10:18 tenfy

如何优雅地等待所有的goroutine退出

Table of Contents 1. 通过Channel传递退出信号 2. 使用waitgroup goroutine和channel是Go语言非常棒的特色,它们提供了一种非常轻便易用的并发能力。但是当您的应用进程中有很多goroutine的时候,如何在主流程中等待所有的goroutine 退出呢? 1 通过Channel传递退出信号 Go的一大设计哲学就是:通过Channel共享数据,而不是通过共享内存共享数据。主流程可以通过channel向任何goroutine发送停止信号,就像下面这样: func run(done chan int) { for { select { case <-done: fmt.Println("exiting...") done <- 1 break de...阅读全文

区块链技术:超级账本(Hyperledger)

摘要超级账本(Hyperledger)是linux基金会下的众多项目中的一个。是由IBM、因特尔,还有金融公司,GP摩根以及其他联合机构于2015年提出来的区块链项目,超级账本还包括5个框架项目:Sawtooth、Iroha、Fabric、Burrow、Indy和3个工具项目:Blockchain explorer、Cello、Composer。其中广为人知的是Fabric。当前成员大约140个,其中1/4来自中国,现在中国技术组由万达、华为、IBM担任主要负责,负责中国会员和中国需求的提供,以及推进代码。下图是项目之间的逻辑关系图: Hyperledger Fabric: 区块链技术的一个实现,它的目标是成为开发应用和解决方案的基础,设计为模块化架构,允许组件如共识和成员服务模块,可以插入...阅读全文

博文 2017-09-08 07:05:04 吉普森

Go语言学习培训靠谱吗

互联网二十多年,已到十字路口。区块链出现前的互联网被称为古典互联网,而应用区块链技术的互联网才进入了后互联网时代。2017年9月,中国政府网络发表文章《我国区块链产业有望走在世界前列》,支持区块链技术发展,并向13亿中国人民普及了区块链技术,未来区块链技术在中国大有作为。而作为区块链技术的首选编程语言——go语言,自然是要被提上很多程序员的日程的,那go语言学习培训靠谱吗?学完能找到工作吗?​Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言...阅读全文

博文 2019-04-17 17:02:23 1000phone

区块链开发(一)搭建基于以太坊go-ethereum的私有链环境

通过各方资料了解学习之后,决定自己开始搭建基于以太坊go-ethereum的私有链环境。由于本人的电脑系统为win8,为避免window环境出现过多莫名其妙的问题,特意通过vm搭建了一台ubuntu16.04版本的虚拟系统。以下内容均基于ubuntu16.04系统。 go-ethereum客户端 下载地址&参考手册 首先,可以查看一下go-ethereum项目在git上的地址: https://github.com/ethereum/Go-ethereum 、 可以在点击项目上的wiki标签,也可以通过一下地址访问wiki: https://github.com/ethereum/Go-ethereum/wiki/Building-Ethereum 在wiki页面选择ubuntu系统的安装说...阅读全文

博文 2016-11-07 05:00:03 wo541075754

01-Golang可以做什么

![Golang的发展方向: 区块链研发工程师 Go服务器端/游戏软件工程师 Golang分布式/云计算 Golang的应用方向: 区块链技术:简称BT Blockchain technoglogy,也被称为 分布式账本技术,是一种互联网数据库技术,其特点是去中心化,公开透明,让每个人均可参与数据库记录。 后端服务器应用: 吃撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标 美团 云计算/云服务的后台应用 CDN的调度系统,分发系统,监控系统,短域名服务,CDN内部开放平台,运营报表系统以及其他一些小工具等。 京东云 Golang的计算能力很强 ](https://static.studygolang.com/180918/06db76e0112...阅读全文

一个可以用手机挖矿的app

在比特币大火特火之后,区块链可以说如雨后春笋一般涌现,但是大多数都是需要显卡或者矿机,这岂是我们可以玩得起的,不过还好,现在越来越多的矿机支持手机来挖矿,但是大部分都是不能提币,或者不能交易的,所以就不能验证真假,最近朋友推荐了一个OF(福币)的挖矿app,挖出来的糖果可以提币到okex平台进行交易,这样就可以放心了,不过现在OF币价格比较低,但是现在可以暂时屯币,相信随着矿池可挖数量的减少,价格一定会上涨的 微信扫码即可注册,然后下载app就可以登录挖矿了,最重要的是这个app不会占用太多cpu,开启后其它功能完全不受影响,大家的淘汰手机可以得到充分利用 ![image.png](//dn-cnode.qbox.me/FulFlMPOhqHnGTkhiPkt6rCkL66s) 以下是OF币...阅读全文

博文 2018-05-31 16:15:47 beiyannanfei

golang协程——通道channel阻塞

新的一年开始了,不管今天以前发生了什么,向前看,就够了。 说到channel,就一定要说一说线程了。任何实际项目,无论大小,并发是必然存在的。并发的存在,就涉及到线程通信。在当下的开发语言中,线程通讯主要有两种,共享内存与消息传递。共享内存一定都很熟悉,通过共同操作同一对象,实现线程间通讯。消息传递即通过类似聊天的方式。golang对并发的处理采用了协程的技术。golang的goroutine就是协程的实现。协程的概念很早就有,简单的理解为轻量级线程,goroutine就是为了解决并发任务间的通信而设计的。golang解决通信的理念是:不要通过共享内存来通信,而应该通过通信来共享内存。golang解决方案是消息传递机制,消息的传递就是通过channel来实现的。 channel的使用很简单,...阅读全文

博文 2016-02-16 03:00:01 xiaofengshuyu

玩转Golang之Struct结构体

先介绍一下go语言的类型系统 Golang中的类型系统 类型系统是指一个语言的类型体系结构。一个典型的类型系统通常包含如下基本内容:  基础类型,如byte、int、bool、float等;  复合类型,如数组、结构体、指针等;  可以指向任意对象的类型(Any类型);  值语义和引用语义;  面向对象,即所有具备面向对象特征(比如成员方法)的类型;  接口。 Go语言中的大多数类型都是值语义,并且都可以包含对应的操作方法。在需要的时候,你可以给任何类型(包括内置类型)“增加”新方法。而在实现某个接口时,无需从 该接口继承(事实上,Go语言根本就不支持面向对象思想中的继承语法),只需要实现该接口 要求的所有方法即可。任何类型都可以被Any类型引用。Any类型就是空接口,即inte...阅读全文

博文 2018-08-11 23:35:04 夏海社长

辣眼的观察Inchain印链,只追求独视。

本想让思绪再飞一会儿,但是已经逐渐成型,便一丝不挂托出,这个命题不能偏颇,更不能偏激,尽量走心实在。 他的名字叫Inchain印链,一个区块链圈子里面比较务实的项目。有一群默默耕耘的追梦人,在不断的为这个世界改变输出力量。他们号称区块链先驱践行者;号称国内为数不多的自主研发公有链;号称是西南地区第一个区块链落地应用;号称可以连接大数据、物联网、防伪溯源等,他们正在用自己的理想把区块链的任督二脉激活。 #谈观感# 区块链运动军备竞赛如火如荼,有野蛮人、有抽水机、有矿场霸主,有各种黑白客斗争、扩容也好、分叉也罢,但是整体格局是浩浩荡荡向前推进,Inchain,正好赶上这一波大潮水,顺水推舟,从开始的几个人,发展到30多人的团队,在全国范围内,也可以算增速极快,因为这是项目本身的魅力所在。从一个小...阅读全文

博文 2017-08-18 01:05:19 重特兰大佛跳墙

快播王欣的新征程:AI和区块链公司获3000万美元融资

#文章来自全天候科技,原标题《快播王欣的新征程:AI和区块链公司获3000万美元融资》,作者张少华。9月3日,全国企业破产重整案件信息网披露的民事裁定书显示,深圳金亚太科技有限公司对深圳市快播科技有限公司提出的破产清算申请,被广东省深圳市中级人民法院裁定即日起生效。这一消息意味着,曾经红极一时的视频软件“快播”生命走到了尽头。然而,快播创始人王欣的创业之路并没有因此结束,自今年2月出狱后,他开始将目光聚焦人工智能、区块链等领域。企查查信息显示,王欣在今年3月创立了深圳市云歌人工智能技术有限公司(以下简称“云歌智能”),公司的法人彭鹏是王欣妻子,王欣是公司第一大股东,持股比例高达91.5%。9月5日,该公司获得了3000万美元融资,投资方包括贝塔斯曼亚洲投资基金和IDG资本。 云歌智能近期发布...阅读全文

博文 2018-09-06 13:34:40 众筹之家呀

做区块链开发,德方智链怎么样?

全称:德方智链科技(深圳)有限公司成立时间:2018年5月8日招聘岗位:区块链开发工程师薪资待遇:30-50k招聘需求: 岗位职责 1. 负责基于HyperLedger Fabric的金融产品的设计和研发 2. 开发基于区块链的资产交易金融平台和基础框架 3. 跟踪金融领域相关技术变化,并应用于实际研发产品中。 任职资格: 1. 8年以上互联网及金融应用开发经验,或相关的工作经历; 2. 有2年以上Hyperledger Fabric商用项目的实际开发经验 3. 精通Hyperledger Fabric 和 它的底层架构 4. 熟悉共识算法或一致性算法者,如PoW、PBFT、PoS、DPos、RPCA、Raft熟悉各种数据结构和算法,对密码学,安全协议和加密算法有研究; 5. 熟悉 Linu...阅读全文

博文 2018-06-29 19:34:40 区块链产品官

快播创始人王欣归来:旧时P2P将披“区块链新衣”?

大概90后及以前的朋友们,都知道有这么一个段子:全中国人都欠快播一个会员。现在,优酷、爱奇艺、腾讯视频依靠“爆款自制剧+付费会员”,稳坐视频应用第一梯队,而当年的“看剧神器”——快播早已消失良久,渐渐被人淡忘。2014年,快播被乐视网举报涉嫌传播淫秽色情信息;2016年,快播传播淫秽物品牟利案宣判,快播公司罚一千万元,创始人王欣判刑3年6个月;2018年2月7日,王欣出狱。有人说,2018年谁的出狱最受关注,答案必定是王欣;还有人说,王欣出狱了,但快播已经不再,乐视也已不再,真是太讽刺了。 快播重新回归大众视野,在于9月3日全国企业破产重整案件信息网站的一则消息:深圳金亚太科技有限公司对深圳市快播科技有限公司提出的破产清算申请,即日起生效。9月4日,快播创始人王欣妻子彭鹏在微博上写道:快播选...阅读全文

博文 2018-09-19 12:34:40 OK情报局

健康链(HDC):基础公链为经,医疗引擎为纬

image 摘要: 健康链(HDC), 作为致力于建立全球慢性病数据医疗系统平台的区块链生态网络,综合考虑行业生态发展现状与技术应用实践,以建设多层级多网络的区块链网络平台为基础,更侧重医疗大数据、健康数据库、医疗人工智能的深度应用与挖掘。 HDC区块链网络平台会以基础技术公链+医疗健康专属技术引擎两个维度发展与建设,从基础设施公链角度来看,未来社会发展生态一定是多个主流生态区块链网络,各个模块技术也会迭代进化,我们在目前的架构设计中,将区块链平台技术核心模块化,实现区块链核心模块的组件化运行。 区块链带来了疯狂与迷思,更带来敬畏与焦虑,有着数不完的技术名字、技术路线和专业术语,区块链的从业者、信仰者已经眼花缭乱,好像懂了一点,但过不了几天又会迷失在新的技术陷阱中,好像无从自拔…… 区块链技...阅读全文

博文 2018-08-26 19:34:49 宇宙一直在

golang x.(type) 用法

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> golang中x.(type)只能在switch中使用 func MyPrintf(args ...interface{}) { for _, arg := range args { switch arg.(type) { case int: fmt.Println(arg, "is an int value.") case string: fmt.Println(arg, "is a string value.") case int64: fmt.Println(arg, "is an int64 value.") default: fmt.Println(arg, "is an unknown type....阅读全文

博文 2018-09-01 14:33:12 Robin3D

Golang数组Array

数组Array 定义数组的格式:var package main import ( "fmt" ) func main() { //数组的长度也是类型的一部分,因此具有不同长度的数组为不同类型 var a [2]int //定义长度为2的int型数组。 var b [1]int //长度为1的int型数组 b = a fmt.Println(b)//此时编译时不通过的 } 数组的长度也是类型的一部分,因此具有不同长度的数组为不同类型 package main import ( "fmt" ) func main() { a := [20]int{19: 1} //长度为20的int型数组,索引位为19的赋值为1 b := [...]int{0: 1, 1: 2, 2: 3} //3个点代表不...阅读全文

博文 2017-09-30 09:30:01 skymyyang

Golang slice 切片原理

golang 中的 slice 非常强大,让数组操作非常方便高效。在开发中不定长度表示的数组全部都是 slice 。但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果就是在实际开发中碰到很多坑,以至于出现一些莫名奇妙的问题,数组中的数据丢失了。 下面我们就开始详细理解下 slice ,理解后会对开发出高效的程序非常有帮助。 这个是 slice 的数据结构,它很简单,一个指向真实 array 地址的指针 ptr ,slice 的长度 len 和容量 cap 。 其中 len 和 cap 就是我们在调用 len(slice) 和 cap(slice) 返回的值。 我们来按照 slice 的数据结构定义来解析出 ptr, len, cap // 按照上图定义的数据...阅读全文

golang make()内置函数

内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上),跟 new 类似,第一个参数也是一个类型而不是一个值,跟 new 不同的是,make 返回类型的引用而不是指针,而返回值也依赖于具体传入的类型 make()函数在golang的代码如下: func make(t Type,size IntegerType) Type 使用make来创建slice,map,chanel说明如下: slice: var slice_ []int = make([]int,5,10) fmt.Println(slice_) var slice_1 []int = make([]int,5) fmt.Println(slice_1) var s...阅读全文

博文 2015-06-17 20:03:47 happinessaflower

比原链CEO朗豫:重金启动MOV生态建设,这会是第一个分布式区块链商业生态

11月8日,由巴比特主办的2019世界区块链大会·乌镇在乌镇互联网国际会展中心正式开幕。在比原链“Keep MOVing”专场活动上,比原链CEO朗豫做了主题分享。 以下内容来自朗豫分享,经巴比特整理。 朗豫 稳定运行2年,主、侧、跨发展方向破解不可能三角难题 2018年底、2019年初时,我们讲稳定、安全和繁荣。 我们都实现了。目前,比原链已无故障运行近2年,侧链也已平稳运行3个半月。没有稳定的系统就不可能有稳定的应用。去年,我们的算力摆脱了GPU的影响进入平稳发展阶段,钱包客户端也没有出现资损情况。我们的开发者社区诞生了一本已出版的技术解读类图书。我们也加入了golang这个大技术社区。在政务和商务应用方面,我们也进入了比较好的状态。 在技术上,我们实现了侧链Vapor,完善了基于比原链...阅读全文

博文 2019-11-11 09:33:37 更多精彩内容POW的比原链为何要做Staking?长铗或解锁你认知“资产”新姿势 | Bystack火石计划巴比特资讯Bystack开启共识节点全球招募,长铗首次详细描述Bystack的世界观、现状和未来巴比特资讯拼流量、拼资源、拼技术—— BaaS已沦

golang里channel的实现原理

channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur.html 此外,自带的runtime package里已经提供了benchmark代码,可以运行下面的命令查看其性能: go test -v -test.bench=".*" runtime 在我的pc上的结果是: BenchmarkChanUncontended 50000000 67.3 ns/op BenchmarkChanContended 50000000 67.7 ns/op Ben...阅读全文

Go语言 传值和传指针性能对比

载自达达的博客 以往的C编程经验告诉我们,指针传参会有更好的性能,在Go语言中,这条经验也是通用的。但是需要留意两个问题: 指针传参会导致参数的操作领域不确定,到底函数内部会不会改变传入的对象呢?Go语言中没有类型C那样的const关键字,所以无法控制。Go语言是有GC的,并且这个GC还不是很完善,受对象数量影响较大,传递指针意味着可能多创建不必要的对象,到底指针传参带来的性能提升能不能抵消创建对象产生的GC压力呢?这是一个不好观察到的数据。(原作者达达这里应该是有错误的,首先传值也是复制,要产生一个新对象,分配内存地址传到新的函数中,其次指针一般来说64个字节,复制的代价远小大中型数据传值,因此在都产生一个新对象的情况下,指针还是远优先于传大中型的值结构) 下面是性能消耗的测试代码: pa...阅读全文

博文 2014-10-09 18:00:00 abv123456789

区块链将带来怎样的应用?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在上一篇文章中,咱们聊到了区块链技术正在与大数据、云计算、物联网以及人工智能这些技术链接,随时可能碰撞出技术创新的火花,区块链可以提高人工智能的安全机制,可以解决物联网设备传统中心化设备难以承受巨大负载的问题,从而实现物联网设备的“自治”,并且区块链技术可以帮助解决数据安全性和归属权的问题,这些都是区块链在技术层面的创新实践。但是说了这么多,最终技术的创新和进步都是为了人们的生活更加便捷和幸福。从移动互联到虚拟现实再到人工智能,从手机APP、VR眼镜到虚拟个人智能助理,可以看到新技术的创新都越来越贴近我们的生活,同样区块链也不会例外。 本文将从一篇漫画入手,聊一聊区块链技术将如何影响和改变我们的生活,在未来我们的...阅读全文

Go的变量到底在堆还是栈中分配

Go的变量到底在堆还是栈中分配 2015-10-22 最近试着优化掉一些小对象分配,发现一个很诡异的问题:这段代码会在堆上分配对象! package main import ( "fmt" ) func main() { var a [1]int c := a[:] fmt.Println(c) } 看汇编代码 go tool compile -S test.golang "".main t=1 size=336 value=0 args=0x0 locals=0x98 0x0000 00000 (test.go:7) TEXT "".main(SB), $152-0 0x0000 00000 (test.go:7) MOVQ (TLS), CX 0x0009 00009 (test.go:...阅读全文

博文 2016-07-20 13:27:37 zenlife

golang学习之struct

结构体定义的一般方式如下: type identifier struct { field1 type1 field2 type2 ... } type T struct {a, b int} 也是合法的语法,它更适用于简单的结构体。 var t *T t = new(T) 变量 t 是一个指向 T的指针,此时结构体字段的值是它们所属类型的零值,使用 new 函数给一个新的结构体变量分配内存,它返回指向已分配内存的指针。 无论变量是一个结构体类型还是一个结构体类型指针,都使用同样的 选择器符(selector-notation) 来引用结构体的字段,即: type myStruct struct { i int } var v myStruct // v是结构体类型变量 var p *mySt...阅读全文

博文 2016-06-15 09:00:00 caiya928

Go并发原理

Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数的开发者。 并发(concurrency)和并行(parallellism)并发(concurrency):两个或两个以上的任务在一段时间内被执行。我们不必care这些任务在某一个时间点是否是同时执行,可能同时执行,也可能不是,我们只关心在一段时间内,哪怕是很短的时间(一秒或者两秒)是否执行解决了两个或两个以上任务。 并行(parallellism):两个或两个以上的任务在同一时刻被同时执行。 并发说的是逻辑上的概念,而并行,强调的是物理运行状态。并发“包含”并行。 (详情请见:Rob Pike 的PPT) Go的CSP并发模型Go实现了两种并发形式。第一种是大家普遍认知的:多线...阅读全文

只用200行Go代码写一个自己的区块链!

区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的。这篇文章就是帮助你使用 Go 语言来实现一个简单的区块链,用不到 200 行代码来揭示区块链的原理!高可用架构也会持续推出更多区块链方面文章,欢迎点击上方蓝色『高可用架构』关注。 “用不到200行 Go 代码就能实现一个自己的区块链!” 听起来有意思吗?有什么能比开发一个自己的区块链更好的学习实践方法呢?那我们就一起来实践下! 因为我们是一家从事医疗健康领域的科技公司,所以我们采用人类平静时的心跳数据(BPM心率)作为这篇文章中的示例数据。让我们先来统计一下你一分钟内的心跳数,然后记下来,这个数字可能会在接下来的内容中用到。通过本文,你将可以做到: 创建自己的区块链 理解 hash 函...阅读全文

博文 2018-02-28 10:23:05 高可用架构

Go 语言的数据结构:链表

数据结构和算法是计算机科学的重要组成部分。虽然有时候它们看起来很吓人,但大多数算法都有简单的解释。同样,当问题能用算法来解释清楚的时候,算法的学习和应用也会很有趣。 这篇文章的目标读者是那些对链表感到不舒服的人,或者那些想要看到并学习如何用 Golang 构建一个链表的人。我们将看到如何通过一个(稍微)实际的例子来实现它们,而不是简单的理论和代码示例。 在此之前,让我们来谈谈一些理论。 ## 链表 链表是比较简单的数据结构之一。维基百科关于链接列表的文章指出: > 在计算机科学中,链表是数据元素的线性集合,其中线性顺序不是由它们在内存中的物理位置所给出的。相反,每个元素指向下一个元素。它是由一组节点组成的数据结构,它们共同代表一个序列。在最简单的形式下,每个节点都由数据和一个指向下个节点的引...阅读全文

博文 2018-03-25 23:02:44 SergeyChang

【互联网早报】2017.12.04

## 国内新闻 1.百度贴吧曝光诸多个人信息 律师:若不删除百度也担责 http://tech.sina.com.cn/i/2017-12-03/doc-ifyphxwa7677176.shtml 2.迅雷“内讧”结束?大数据公司将不再使用迅雷品牌 http://tech.sina.com.cn/i/2017-12-03/doc-ifypikwt5710024.shtml 3.微信支付即将登陆马来西亚 与支付宝抢滩东南亚市场 http://tech.sina.com.cn/i/2017-12-04/doc-ifyphkhm0158117.shtml 4.永安行旗下公司获上海云鑫等23亿元增资 http://www.ebru...阅读全文

开源区块链实现 Hyperledger Fabric

Fabric是一个开源区块链实现,开发环境建立在VirtualBox虚拟机上,部署环境可以自建网络,也可以直接部署在BlueMix上,部署方式可传统可docker化,共识达成算法插件化,支持用Go和JavaScript开发智能合约,尤以企业级的安全机制和membership机制为特色。你要是不知道这些术语什么意思,就记住一点,Fabric之于区块链,很可能正如Hadoop之于大数据...阅读全文

区块链笔记

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 广义和狭义的区块链广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本(分布式数据库)。 区块链结构与特征1) 一个分布式的链接账本,每个账本就是一个“区块”; 2) 基于分布式的共识算法来决定记账者; 3) 账本内交易由密码学签名和哈希算法保证不可篡改; 4) 账本按产生的时间顺序链接,当前账本含有上一...阅读全文

博文 2019-09-23 17:32:46 链客