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

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

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

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

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

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

JSON与Go

介绍 JSON(JavaScript Object Notation)是一种简单的数据交换格式。从语法上来说,它综合了JavaScript的对象(objects)和列表(lists)。通常用于在web后端和运行在浏览器中的JavaScript程序之间通信,不过也可以用在很多其他的地方。官方主页,json.org,提供了对标准的详尽说明。 使用json 包可以轻松地在Go程序中读写JSON数据 编码 通过函数Marshal编码JSON数据。 func Marshal(v interface{}) ([]byte, error) 给定Go的数据结构, Message, type Message struct { Name string Body string Time int64 } 以及Mes...阅读全文

博文 2014-11-21 22:00:00 zhjih123

强强联手!数据宝与国家发改委直属机关国家信息中心的全资公司中国国信签署战略合作协议

祝贺中国国信信息总公司与数据宝今日签署战略合作协议。中国国信是国家发改委直属机关国家信息中心的全资公司、正在筹建的北京国际大数据交易所的大股东,数据宝是2017年度大数据流通交易排名最高的公司,双方强强联手,接下来将在政府大数据流通与交易领域展开深度合作。 2018年1月11日,数据宝与中国国信信息总公司在北京签署战略合作协议,双方就共同利用双方优势资源,最大发挥各自优势,共同发展大数据产业,未来在大数据产品开发、市场推广、品牌营销、渠道建设等方面进行深入合作,形成紧密的战略合作伙伴关系。 中国国信信息总公司(简称“中国国信”)于1992年经国务院批准设立,曾隶属于原国家计划委会,2002年成为国家信息中心的全资企业。国家信息中心是国家发展和改革委员会直属的副部级单位。 ...阅读全文

【玩转Golang】 自定义json序列化对象时,非法字符错误原因

由于前台web页面传来的日期对象是这样的格式“2010-11-03 15:23:22”,所以我安装网上查来的办法,自定义包装了time.Time对象,实现自己的Marshal和UnMarshal方法 type DateTime struct { time.Time } const ctLayout = "2006-01-02 15:04:05" const ctLayout_nosec = "2006-01-02 15:04" const ctLayout_date = "2006-01-02" func (this *DateTime) UnmarshalJSON(b []byte) (err error) { if b[0] == '"' && b[len(b)-1] == '"' { ...阅读全文

博文 2014-12-30 22:00:01 dajianshi

golang 单向 channel

只写通道:chan<- T只读通道:<-chan T 即只可写入或只可读的channel,事实上 channel 只读或只写都没有意义,所谓的单向 channel 其实知识声明时用,比如func foo(ch chan<- int) <-chan int {...} chan<- int表示一个只可写入的 channel,<-chan int表示一个只可读取的 channel。上面这个函数约定了 foo 内只能从向 ch 中写入数据,返回只一个只能读取的 channel,虽然使用普通的 channel 也没有问题,但这样在方法声明时约定可以防止 channel 被滥用,这种预防机制发生再编译期间。如果后续代码里,向本来用于读channel里写入了数据,编译器会提示错误,这时就要仔细检查自己的...阅读全文

博文 2018-08-31 15:37:29 夜空一起砍猩猩

go1.11的module机制和dep/govendor机制问题

module机制和dep/govendor机制是否冲突? 自从go团队推出module机制后,go团队和dep社区发生了一些冲突,有一篇有名的争论《关于Go Module的争吵》,读后给人一种错觉,似乎module机制和dep/govendor机制是不相容的。但是仔细分析二者的运行机制,其实两者并无冲突,反而是互补性质的。 module机制由环境变量GO111MODULE控制,它有三个值:off、on、auto,默认值是auto。在auto模式下,在$GOPATH/src路径下build时,默认使用vendor、GOPATH导入第三方包,而在GOPATH之外编译时,默认使用go.mod设置导入项目。我们知道vendor机制只有在GOPATH路径之下才起作用,到了GOPATH之外就没用了。所以...阅读全文

博文 2018-08-26 11:34:54 从火星来

Go数据结构之栈

一、什么是栈​这是杭州地铁1号线线路图。大卫哥考考大家,地铁列车如何调头?我也不卖关子了,列车通常是用“人字轨道”来变换车道。​列车先从A轨道开进“人字轨道”里,再从B轨道开出。从A轨道开进去的时候1号车厢是车头,从B开出来的时候4号车厢就变成车头了。所以大家看到地铁前后各一个车头。“人字轨道”有个特点:先进后出,英文简写就是FILO,含义自己体会。计算机专家把“人字轨道”抽象出来,提出了一个叫“栈”的概念。​栈和“人字轨道”的特点是一样的FIFO,只不过把车厢换成了数据。接下来,看大卫哥把栈扒的底裤不剩。二、栈的结构​大卫哥把栈拆分成容器和链表两块,容器用结构体实现,链表用单链表,当然大家也可以用其他链表结构,甚至数组来实现。三、接口说明及实现​1、Init初始化栈,其实就是初始化里面的链...阅读全文

博文 2017-11-16 02:29:29 rhan-zz

数据宝年底活动均有折扣充值最高送¥1500

数据宝中国首个省部共建的大数据资产运营平台,提供各政企大数据资源Api接口。 今日向您推荐: 1、乘机人价值评估:主要用来做用户画像、分析客户的消费能力,还款能力,商旅性质等,可用于金融行业、p2p。 2、运营商通话详单:检测手机号码是否正常、稳定使用,防止恶意刷单、欺骗。通过手机在线在网使用、账单信息、消费习惯等判定此人是否通信稳定,进行个人征信调查。根据使用时长、使用地点、区域、入网时间进行商业周边人群分析,刻画群体画像,进行精准营销。 3、个人银行卡消费报告:了解用户的资产,行为状态,判断他的消费习惯,活跃区域,用于金融行业贷款前进行放款金额评估以及贷后追款的区域分析等。 以上接口均需得到授权,主要用来分析金融行业个人征信。 首次完成注册,还...阅读全文

用Go语言做产品半年的一些感觉

用Go语言做产品刚好半年,有一些感觉跟大家说道说道。 在使用Go之前,我常常想象,无法使用先进的Debug工具会对工作进度造成多么巨大的影响。甚至在Visual Studio的娇惯下认为,不能调试基本就无法正确的写出代码了。 由于我在Windows平台,能够支持Go语言调试的gdb老是无法工作,所以在这半年中,我一次都没有打过断点,也没有开启过一次单步跟踪。刚开 始我心里非常没底,只好老老实实为每一个方法写测试代码,每开发完一个功能之后就运行所有测试。这个方法其实也算是家喻户晓的了,但很奇怪,我在写C#的 时候并不会自觉地这样做。只有在一些非常特殊的部分会写部分测试代码。 事后我想了想,懒惰只是其中一个原因,还有一个原因是“编译速度”。众所周知,Go语言的编译速度是非常快的。平时看到这个消息...阅读全文

博文 2015-06-11 03:00:06 ShaYeBlog

5亿次请求,95万QPS HTTPS CC攻击——阿里云云盾抗下全球最大DDoS攻击

5亿次请求,95万QPS HTTPS CC攻击——阿里云云盾抗下全球最大DDoS攻击 3月29日, 阿里云正式对外发布《2015下半年云盾互联网DDoS状态和趋势报告》。报告披露,去年11月,阿里云安全团队成功防御了黑客对阿里云平台上某互联网金融用户发起的超大规模HTTPS/SSL CC流量攻击,此次攻击也是迄今为止全球有统计数据最大的HTTPS SSL/CC攻击。 作为国内最大的公共云计算服务提供商,大量网站选择阿里云的安全防护,也因此为国内客户防御了当前互联网上主要的攻击行为。 攻击者从11月5日下午14点开始针对网站开始发起攻击,出现两次波峰分别在14点10和晚上7点30左右,总攻击量达到了5亿次请求。 ![1攻击请求QPS变化.jpg](http://stu...阅读全文

gocrawl 分析

1. gocrawl 类结构 1 // The crawler itself, the master of the whole process 2 type Crawler struct { 3 Options *Options 4 5 // Internal fields 6 logFunc func(LogFlags, string, ...interface{}) 7 push chan *workerResponse 8 enqueue chan interface{} 9 stop chan struct{} 10 wg *sync.WaitGroup 11 pushPopRefCount int 12 visits int 13 14 // keep lookups in map...阅读全文

博文 2014-10-04 19:26:25 harrysun

图形 API 调试工具GAPID

GAPID 是一个工具合集,允许检查、调整和重复从应用程序到 Graphics 驱动之间的调用。 GAPID 采用 Go 语言编写,目前仍在开发中,但已经可以用于调试许多 Android OpenGL ES 和 Vulkan 应用。 GAPID 由以下子工具/组件构成: [`gapii`](https://github.com/google/gapid/blob/master/gapii):**Graphics API 拦截器**——****位于应用程序/游戏和 GPU 驱动程序之间的一层,记录所有调用和内存访问。 [`gapis`](https://github.com/google/gapid/blob/master/gapis):**Graphics API 服务器**——**...阅读全文

在个人博客实现「小课」系统

程序员这个行业,是一个终身学习的行业,经常会有新技术出现。我是一个很爱学习的人,喜欢尝鲜。每次想去学习一项新技术的时候,总是苦于找不到合适的入门教程。于是有了想自己写个小课系统的想法:希望能通过写一系列的文章,组织成一门小课,帮助想学习某项技术的同学快速入门。 有了这个想法之后,我开始准备搭建小课平台,一开始想的是做一个前后端分离的网站,后端用 Go 写 API,前端用 vue 写页面。 使用 vue + ElementUI 搭建出来的第一个版本长这样: 写完第一个版本之后,仔细想了一下,如果要写好这个小课系统的话,我还得做好几件事: 写 API ,前后端进行数据交互 写 Markdown 编辑器,在线录入课程 做服务端渲染,做 SEO 优化 一想到这里,头开始有点大,第一个对外发布的小课系...阅读全文

博文 2020-04-16 10:36:55 艾逗笔

关于golang中use as value错误

今天写代码过程中突然报错了,百思不得其解,错误如下 报错代码 第一次遇到这个错误,于是上网搜了一下也没有找到解决。仔细阅读代码后发现initEs(str)这个方法没有设置返回值,而我在使用initES(str)时写了返回值。initEs(str)方法如下: initEST(str) 总结:每一个操蛋的错误,都有一个极其sb的失误造成的...阅读全文

博文 2019-03-17 18:34:42 贝塔船长

golang struct 的奇技淫巧

在使用golang变成的过程中,struct的使用频率非常高,基础的使用我们都会,但有的时候可能会接到一些特殊的需求,或者发现别人的代码读起来不那么顺畅。那是因为struct的一些“冷门”方式,我们不那么熟练。 接下来,就跟大家分享下,我最近用到的“生僻方法”: 结构体中的json是干什么用的? 定义一个结构体 type Tina struct{ appID string`json:"string"` } 这里的这个json可不是备注的意思,而是在使用http接口进行传输时,根据json标识的内容对结构体做解析。 在做项目的时候就发生一个case: { actionIDint`json:"actionType"` actionTypestring`json:"actionID"` } 报错:...阅读全文

博文 2019-10-18 00:32:52 aside section ._1OhGeD

批处理GO的作用

--分析器会先分析下一个go前的所有代码,然后再执行,就算最后一步错,也会回滚到第一个语句的状态,换句话说,就是分析器会把go之间的语句作为一个事务,有错误的话会回滚到上一go之前。--可以在分析器下运行以下代码 create table temp(myint int)go --当这个go和下面的那个go没有的话,虽然这个语句正确,但是由于下面出错,这个表也不会创建的,--当只有这个go,没有下面的那个go的话,表temp会被创建,即使下面的语句出错。create function myfuntion(@int int)returns varchar(100)asbegindeclare @intvar varchar(100)set @intvar = 'asdfasd'return @i...阅读全文

博文 2015-09-25 06:00:00 jamex

go语言很给力呀

最近因为项目需要,所以写了一个id生成器,于是当时想为了省事就用go语言来写得了,于是花了大概半天的时间写了300多行码,完成之后开始测性能。一开始是在自己的虚拟机上测的,客户端是用php的,结果发现php在单进程环境下只能跑30个请求,这个结果其实也不意外,因为这根本就不是服务器的问题,而是php本身的性能不行,所以压力压不上去。于是用pcntl_fork出多个进程来,每个进程跑一些请求,最后在主进程里计算总的时间,结果发现1s最多处理1000-2000之间,并且随着并发数增多,性能下降很快。这个结果让人比较意外,原以为go语言的性能会好很多。 后来仔细想了想,突然想起来有个参数可以设置runtime.MAXPROC,用于设置可以使用的cpu数目。于是在设置了这个参数之后又开始测试,一开始...阅读全文

博文 2014-10-04 19:26:39 javatgo

高私密性的消息通讯系统 Vuvuzela

Vuvuzela 是一个消息通讯系统。可以保护消息的内容和消息元数据的私密性。用户使用 Vuvuzela 不会暴露他和谁进行通讯,即使是遭遇到强大的国家机构的时候。 [SOSP 2015 paper](https://davidlazar.org/papers/vuvuzela.pdf) 解释了这个系统,它的 threat 模型,性能,限制等等。[SOSP 2015 slides](https://davidlazar.org/slides/vuvuzela-sosp2015.pdf) 用图形介绍了这个系统。 Vuvuzela 是第一个在百万用户规模下,提供强大的元数据私密性的系统。之前的系统使用 Tor (例如 [Pond](https://pond.imperialviolet.org...阅读全文

go词法解析之scanner

golang版本: 1.13.1 词法分析词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。scannergo于1.5开始实现了自举,而第一阶段的词法分析由cmd/compile/internal/syntax/scanner 实现的.scanner 的实现比较简单,主要逻辑在next里,是先解析是否是字符串,然后通过一个大的switch来转成tokens(tokens位于cmd/compile/internal/syntax/tokens),可以通过scanner的测试TestScanner来观察这一个过程...阅读全文

博文 2019-12-06 18:34:23 _蜡笔

GolangGoreporte——代码质量检测

我们知道一个项目中除设计之外,代码质量是一个项目成功与健壮的基础,再好的设计但是实现代码混乱,风格混杂,明显性错误百出,我们仍然会认为这是一个失败的项目;相反,即使一个项目在架构和设计上无新奇之处,但代码实现质量高,例如风格统一,测试完善,接口明确,无冗余代码,实现中无明显错误或不安全用法,圈复杂度低等等,无论是对于项目的实现上还是后期代码维护都是有益的。所以,一个项目的代码质量是一个项目成功的关键基础。 C/C++,Java等等语言都有自己的代码质量检测工具,例如Cppcheck,PC-Lint,Splint等等,Golang语言出现时间不实很长,这方面的生态还不是非常完善。goreporter,一个golang代码检测的工具,它合并了多种检测工具,相当于很多工具的集合,使用起来非常容易...阅读全文

01背包问题(完全背包,部分背包)golang实现

很经典的动态规划问题,具体思路这里就不列出了,网上太多资料了。想要详细理解的话可以去看背包九讲 这里分别列出,01背包,完全背包,部分背包 golang实现。 01背包 给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。 应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大? 从左往右,从上往下填表(example: 5表示重量,12表示价值) 1.png 代码and注释 dp[i][j] = max(dp[i-1][j], nums[i][1]+dp[i-1][j-nums[i][0]]) 仔细想清楚这一行 backpack.png 完全背包 给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi,每个物品都有无限多件...阅读全文

博文 2017-10-24 02:04:49 Tibbersshao

Sql 注入和 XSS 分析程序grapeSQLI

grapeSQLI是一种简单易用的Sql inject & XSS分析程序,基于语义分析。 兼容且使用libinjection指纹数据以及搜索模式。 libinjection已经拥有非常完美的思维模式,没必要颠覆它,所以我的大部分代码来自于libinjection,并针对GOLANG做出优化。 经过针对GO语言的优化,目前的性能在可以接受的范围内,具体请参考Benchmark节...阅读全文

golang的sql.DB的一些注意事项及读写锁的总结

最近在写一个用于存储protobuf配置的配置管理服务,业务逻辑不难,2天就搞定,但是后续bug不少,也踩了很多坑,在这里记录下。 首先,一直以为golang内的sql模块是单链接的,所以一开始在每个goroutine内都open了一个DB,并写了一个连接池进行管理。后续发现是多此一举,白白写了好多代码。golang的sql模块自带连接池功能,在执行sql语句的时候才会分配连接,执行完毕后归还给连接池,所以假设用golang的sql模块,一个程序一个DB就行了。 既然有连接池的支持,那么也要注意千万不要泄露连接池的连接。假设你采用Query来执行查询语句,那么会返回一个sql.Rows结构,这个结构会占用一个连接,只有在遍历完才会自动关闭,所以最好是获得了Rows后执行一次Rows的Clos...阅读全文

go1.11的module机制和dep/govendor机制问题

##module机制和dep/govendor机制是否冲突? 自从go团队推出`module`机制后,go团队和dep社区发生了一些冲突,有一篇有名的争论《关于Go Module的争吵》, 读后给人一种错觉,似乎`module`机制和`dep/govendor`机制是不相容的。但是仔细分析二者的运行机制, 其实两者并无冲突,反而是互补性质的。 `module`机制由环境变量`GO111MODULE`控制,它有三个值:`off、on、auto`,默认值是`auto`。 在`auto`模式下,在`$GOPATH/src`路径下`build`时,默认使用`vendor`、`GOPATH`导入第三方包, 而在`GOPATH`之外编译时,默认使用`go.mod`设置导入项目。我们知道`vendor`机...阅读全文

博文 2018-08-26 21:58:42 fuhuizn

Go数据结构之栈

一、什么是栈 这是杭州地铁1号线线路图。大卫哥考考大家,地铁列车如何调头? 我也不卖关子了,列车通常是用“人字轨道”来变换车道。 列车先从A轨道开进“人字轨道”里,再从B轨道开出。从A轨道开进去的时候1号车厢是车头,从B开出来的时候4号车厢就变成车头了。所以大家看到地铁前后各一个车头。“人字轨道”有个特点:先进后出,英文简写就是FILO,含义自己体会。计算机专家把“人字轨道”抽象出来,提出了一个叫“栈”的概念。 栈和“人字轨道”的特点是一样的FIFO,只不过把车厢换成了数据。接下来,看大卫哥把栈扒的底裤不剩。 二、栈的结构 大卫哥把栈拆分成容器和链表两块,容器用结构体实现,链表用单链表,当然大家也可以用其他链表结构,甚至数组来实现。 三、接口说明及实现 1、Init 初始化栈,其实就是初始化...阅读全文

博文 2017-11-16 03:05:04 懒人记

Go语言学习笔记2——数组和Slice

在任何一门语言里,数组应该都是非常基础的类型了,使用率当然也应该是很高的。go不但提供了数组,而且还在数组这个类型之上加了一层包装,这个包装也就是slice。 go的数组变量(也就是数组名)是真真实实的数组,而不是一个指向数组内存起始位置的指针,也不能和同类型的指针进行转化,这一点严重不同于C语言; C语言主要还是类型系统太弱了,因此很多的数据最终都退化为指针的方式来访问。 go的数组定义: var a [10]int var a = [10]int{0,1,2,3,4,5,6,7,8,9} var a = [...]int{0,1,2,3,4,5,6,7,8,9} var a = [2][2]int{[2]int{1,1}, [2]int{2,2}} var a = [2][2]int{{...阅读全文

博文 2014-10-09 16:00:05 Marcky

GitHub Now in Kubernetes!

如果你现在正在使用GitHub,那么,有没感觉到和前两天有什么不同呢?就在昨天,Github已经悄悄的完成了(可能是局部)用户流量到生产环境Kubernetes集群的切换。对,如果你运气足够好的话,也许就是其中一个。 这可不是简单的『又一个Kubernetes in Production』案例。作为全球最大的代码托管和编程社交网络,估值超过20亿美元的GitHub网站坐拥数千万用户和亿级的代码仓库,已然成为全球软件开发者每天赖以生存的光和土壤。GitHub将如此规模业务押注在Kubernetes上,无疑是对Kubernetes生态极大的鼓舞。 在GitHub工作的SRE Aaron昨天在Twitter上给好友,现任Google公司首席布道师的Kelsey发了一条推文透露了这个消息,作为Kub...阅读全文

关于sql 中go的处理

go 关键字 并非sql语句 只是查询分析器的一个命令,而不是sql的命令 表示一个批处理 即结束本段sql执行 进入下段语句 在查询分析器使用 go是ok的 才编程语言中使用 go是错误的 一般我们在 create table/procedure 语句中 或多条语句中 常常用go做分段 而在编程语言中则错了 使用以下方式 处理这种方式 用 sqlcmd ,osql 执行sql脚本 sql脚本中可以使用go命令 或在 http://topic.csdn.net/u/20070524/21/c4d7f71a-d6bd-47ac-9280-4bf3cca5d7f9.html 建议采用 sqlcm...阅读全文

博文 2015-06-17 23:08:08 raokaichuan

database/sql包连接池解读

连接池是做网络应用经常用到的一个概念,可以缓存连接减少创建连接的损耗。那么在golang中应该如何做一个连接池,在这里会通过解读database/sql包的连接池实现来给自己一些参考和启发。首先,需要了解database/sql的基本原理和使用方法,请参考下面的链接仔细阅读:http://go-database-sql.org/overview.htm...阅读全文

今日威胁情报(2019/3/5)

APT活动1、火眼报告APT40。该组织至少在2013年开始运作。该组织专门针对工程、运输和国防工业,特别是在这些部门与海事技术重叠的地方。最近,还观察了具有战略重要性的国家的具体目标,包括柬埔寨,比利时,德国,香港,菲律宾,马来西亚,挪威,沙特阿拉伯,瑞士,美国和英国。https://www.fireeye.com/blog/threat-research/2019/03/apt40-examining-a-china-nexus-espionage-actor.html2、Sharpshooter APT组织被关联到朝鲜 Lazarus Group。这是一篇同源分析的报告。报告中TTP特征与Lazarus一致。使用的样本核心代码与Lazarus一致。使用的木马相似。参考:https://...阅读全文

博文 2019-03-05 18:34:41 千鸟阁安全头条

一行Golang代码引发的血案——全网最详细分析2020年3月Let’s Encrypt证书吊销事故

Let’s Encrypt作为一家免费提供SSL证书的组织,旨在推进互联网向更安全的HTTPS迁移,受到了大量小型网站的支持和认可。然而很多站长在3月3日收到了来自Let’s Encrypt名为ACTION REQUIRED: Renew these Let's Encrypt certificates by March 4的邮件,警告站长尽快更新证书。那么为什么需要更新证书?不更新证书有什么危害?如何更新证书?本文将为读者分析本次Let’s Encrypt证书漏洞事故的真相。 目录0x01 事故概览0x02 事故详情1. CAA是什么?2. CAA有什么用?0x03 事故分析0x04 一行Golang代码引发的血案0x05 解决事故0x06 避免事故 0x01 事故概览 首先摘录一下邮件中...阅读全文

博文 2020-03-08 15:51:41 untitled.pw

Golang 生成Excel文件(.xlsx)

1、导入xlsx直接生成Excel: go get github.com/tealeg/xlsx 如果在get包时长时间没有反应,那可以直接从我的百度云下载 xlsx 包,之后直接放在你项目的 github.com 文件夹下就可以了 https://pan.baidu.com/s/1T-RsQ6lyP2bw330tD1svgQ package main import "github.com/tealeg/xlsx" func main() { file := xlsx.NewFile() sheet,err := file.AddSheet("sheet1") if err != nil { panic(err) } row := sheet.AddRow() row.SetHeightCM...阅读全文

博文 2019-08-09 20:33:00 LLL_小浪

tshark + Elasticsearch 打造流量回溯分析系统

tshark是网络分析工具wireshark下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump难以胜任的场景中。本系列文章将整理介绍tshark相关内容。本文将介绍与tshark相关的流量解决方案。 tshark + elastic stack 利用tshark,不仅可以对现有的pcap文件进行分析,由于可以输出其他格式,也就可以结合ES的强大搜索能力,达到对数据报文进行记录、分析处理的能力,可以实现回溯分析,结合kibana可视化工具,甚至达到实时可视化监控。 elastic stack全家桶 性能一直被诟病,后来另起炉灶,针对采集使用golang构建出一套beats,用于不同的采集场景。其中针对网络流量,开发出packetbeat。 packetbeat...阅读全文

go语言很给力呀

最近因为项目需要,所以写了一个id生成器,于是当时想为了省事就用go语言来写得了,于是花了大概半天的时间写了300多行码,完成之后开始测性能。一开始是在自己的虚拟机上测的,客户端是用php的,结果发现php在单进程环境下只能跑30个请求,这个结果其实也不意外,因为这根本就不是服务器的问题,而是php本身的性能不行,所以压力压不上去。于是用pcntl_fork出多个进程来,每个进程跑一些请求,最后在主进程里计算总的时间,结果发现1s最多处理1000-2000之间,并且随着并发数增多,性能下降很快。这个结果让人比较意外,原以为go语言的性能会好很多。 后来仔细想了想,突然想起来有个参数可以设置runtime.MAXPROC,用于设置可以使用的cpu数目。于是在设置了这个参数之后又开始测试,一开始...阅读全文

博文 2015-06-17 23:01:27 HopingWhite

Go 1.8rc3 源代码学习:scanner

前言 scanner package 包含了 golang 词法分析器相关的数据结构和方法,源代码位于 /src/go/scanner example_test.go example_test.go 包含了一个使用 scanner 包的示例方法,该方法对 Euler 公式进行词法扫描 func ExampleScanner_Scan() { // src is the input that we want to tokenize. src := []byte("cos(x) + 1i*sin(x) // Euler") // Initialize the scanner. var s scanner.Scanner fset := token.NewFileSet() // ...阅读全文

博文 2017-02-10 10:00:48 xingpingz

golang的sql.DB的一些注意事项及读写锁的总结

最近在写一个用于存储protobuf配置的配置管理服务,业务逻辑不难,2天就搞定,但是后续bug不少,也踩了很多坑,在这里记录下。 首先,一直以为golang内的sql模块是单链接的,所以一开始在每个goroutine内都open了一个DB,并写了一个连接池进行管理。后续发现是多此一举,白白写了好多代码。golang的sql模块自带连接池功能,在执行sql语句的时候才会分配连接,执行完毕后归还给连接池,所以假设用golang的sql模块,一个程序一个DB就行了。 既然有连接池的支持,那么也要注意千万不要泄露连接池的连接。假设你采用Query来执行查询语句,那么会返回一个sql.Rows结构,这个结构会占用一个连接,只有在遍历完才会自动关闭,所以最好是获得了Rows后执行一次Rows的Clos...阅读全文

用 Go 创建一个新的智能合约语言 - 词法分析器部分

这是用 Go 创建新的智能合约语言项目的第二篇文章。在上一篇文章中,介绍了项目的概念,为什么我们决定去构建新的智能合约语言和简要的架构。这个项目就是 WIP 并且开放了源码,你可以在 [这里](https://github.com/DE-labtory/koa) 访问它并随时向我们做出贡献。 - **前面的文章:** [**新语言概念,目标,架构**](https://studygolang.com/articles/17960) ![koa architecture](https://raw.githubusercontent.com/studygolang/gctt-images/master/create-new-smartcontract-language-with-go-lexer...阅读全文

博文 2019-03-10 19:56:46 PotoYang

golang mod详细分析

文章来自于一篇不错的外籍博客,请耐心阅读,真心感觉挺不错的 Introduction to Go Modules (A Russian translation of this post is available: Введение в модули Go.) The upcoming version 1.11 of the Go programming language will bring experimental support for modules, a new dependency management system for Go. A few days ago, I wrote a quick post about it. Since that post went live, t...阅读全文

博文 2019-11-01 17:33:42 aside section._1OhGeD

Golang 学习之三 beego详细分析

beego 详细脱坑教程https://blog.csdn.net/yang731227/article/category/7994348Golang 之数据库xorm ,数据库驱动Drivers SupportDrivers for Go's sql package which currently support database/sql includes:Mysql: github.com/go-sql-driver/mysqlMyMysql: github.com/ziutek/mymysql/godrvPostgres: github.com/lib/pqTidb: github.com/pingcap/tidbSQLite: github.com/mattn/go-sqlite3M...阅读全文

博文 2019-02-23 17:34:44 技术流刘