自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Camus

一无所知

原创 区块链之殇

区块链的基础设施是互联网,其底层协议基于TCP/IP,从这个角度讲,区块链是互联网领域的一个应用。换言之,区块链技术上能解决的问题,通过传统互联网都能解决。 由此可见,区块链真正吸引很多人关注的原因应该不是技术因素,而是经济或者说社会因素。区块链带来了一种理念,那就是每个人都是平等的,也不用担心可...

2020-04-07 23:35:14 104 0

原创 区块链存储子系统设计

一、概念 区块链存储是指在区块链网络中各个节点上安置数据的方式。通常我们指代的是Key/Value数据库。假设数据库名称为DB。 存储域:针对物理数据来说,存储域就是对应的文件或者磁盘数据块。针对账户来说,存储域就是Merkle Patricia Trie(MPT树)。 存储操作:针对各自存储域的...

2020-01-19 13:43:40 466 1

原创 垃圾长城宽带,一次惨痛的系统更新经历

看到尘封已久的beaglebone black板子,最近正好有人来讨论arm上运行区块链rust节点的问题,就想手头的BBB板子也闲置挺久了,可以派上用场。 接上电源线,打开tera term串口工具,设置好波特率和显示界面。很快,就看到了debian的启动日志。 下了一个arm版本的rust-i...

2019-11-17 18:17:57 474 0

原创 职场思考:冰山模型

关于工作,只是把工作做好是不够的,还要考虑长远发展,结合个人特质、行业前景,去做最适合自己的选择。当然,行动和思考同样珍贵。想清楚,做得到就很厉害了。 10月份的时候接触了一点商学院的内容,其中讲到冰山模型,如上所示。冰山之上30%,表示知识技能。冰山之下70%,包括能力和内在特质(价值观、性格特...

2019-11-01 22:41:14 421 0

原创 Rust双向链表

实现Linux内核中的list_head。 Linux内核中List Head是一种双向链表,可将任意类型链接起来,有点类型泛型又胜过泛型。常见用法是这样的: 自定义一种类型: struct Demo { ... struct list_head head; ... } 通过head将De...

2019-08-05 23:51:14 947 0

原创 杂谈:区块链商业模式分析

区块链行业一直在喊应用落地,甚至在2018年的时候定义了区块链应用元年。我们先看看元年内出现了哪些应用。 博彩,以EOS、波场为代表。 一些分布式公告板,用户通过花费虚拟货币在上面涂鸦,写上任意想写的东西。 游戏:网易逆水寒引入区块链激励机制,当然只是很小一部分。卡牌类游戏比较多,引入虚拟货币交...

2019-07-09 07:58:40 1010 0

原创 密码学数学基础

总结基于大素数分解和离散对数的公钥密码体系数学基础 一、核心概念 群、环、域及相关定理。 什么是群? 非空集合G,以及在G上的二元运算$$\circ,满足三个条件 对于任意a,b,c∈\in∈G,有(a∘b)(a\circ b)(a∘b) ...

2019-04-27 00:20:51 797 0

原创 区块链项目调研--Neo

一、基本信息 官网:neo.org 创立时间:2014年 主要成员:达鸿飞、张铮文、陶荣祺 目前市值:$594,678,081 排名17(截至2019年2月27日) 项目愿景:实现数字资产的自动化管理 白皮书:https://docs.neo.org/en-us/whitepaper.html 项...

2019-02-27 22:12:53 627 0

原创 杂谈:区块链是否值得投资

关于这个问题,最直接的方式就是比较投入和回报了,如果回报大于投入,那就是值得投资的。 当我们在谈论投资区块链的时候到底是在谈论什么? 我总结了三个方面 1、基于区块链的数字货币 一类货币:BTC、BCH、BSV等第一代数字货币。 二类货币:Ether、EOS等基于第二代区块链网络的数字货币。 三类...

2019-01-20 22:22:56 10444 2

原创 杂谈:大浪淘沙区块链

一、热闹非凡的币圈 最近币圈最热闹的莫过于澳本聪和吴忌寒之间关于BCH硬分叉的算力大战了。 SV派,澳本聪主张BCH应该按照比特币最初的设计,维持一个纯粹的现金交易系统;而ABC派吴忌寒主张比特币现金应该朝着基础公链的方向发展。关于具体的方案描述,火币上有比较详细的阐述。 BCH分叉的那点事 本来...

2018-11-18 16:38:05 245 1

原创 《比特币:一种点对点电子现金系统》解读

摘要 为了去除现金系统对第三方金融机构的依赖(譬如银行),并且解决双花(double spending)的问题,引入了peer-to-peer network。在这样一个网络上,交易哈希被放入一个持续增长的链,这个链基于工作量证明生成,使得任何人不得篡改历史记录,除非再做一次工作量证明。最长的链不...

2018-11-04 13:01:02 1739 0

原创 区块链智能合约重点讲解

solidity special variables and functions correspond with EVM Execution Context. block.blockhash(uint blockNumber) returns (bytes32): hash of the g...

2018-09-09 18:59:08 554 0

原创 关于滴滴事件的思考

一名正值青春的女孩在乘坐滴滴顺风车的时候遇害了,期间通过朋友求助,朋友像滴滴平台反应未得到及时回复和解决。最终事件发生后,舆论开始爆炸,此时的我是愤怒的:为何作为一个公司,而且已经成为所谓独角兽的公司,会接二连三的发生这种事情。尤记得几个月前发生的空姐乘坐滴滴遇害的事件,如果不是这次事件的提醒,估...

2018-09-04 23:25:17 2997 1

原创 一个用于Rust的Ethereum虚拟机桥

1 motivation and framework Our purpose providing this repository is to build a bridge between Rust Blockchain Kernel(such as Parity) and the llvm-ba...

2018-08-11 10:57:04 291 0

原创 职场记事:从嵌入式到区块链

从2014年毕业,在芯片公司持续工作了三年有余,最终在临近4年之际,出乎意料地进入了区块链公司,还是颇有感慨,记录于此。 之前都在芯片公司工作,从格科到酷芯,一直都在给公司的SoC定制系统,做SDK,还记得刚参加工作那会,我心里对能设计操作系统的人感到无比的崇拜。等到真正接触了,发现实际应用中,...

2018-08-01 22:58:40 871 1

原创 Rust JNI原理

rjni Download and build Rust Library git clone https://github.com/benanders/rjni.git cd rjni; cargo build add examples into Cargo.toml [[...

2018-07-22 22:19:44 1300 0

原创 PCIe实践之路:PCIe转USB Host驱动

大话PCIe:调试实战 本次调试PCIe RC驱动,通过PCIe转USB芯片扩展出的USB口接入U盘。RC平台为ARM-A7,运行裸机环境,EP为一款PCIe转USB3.0芯片,提供PCIe gen2 1X物理接口,接到4X插槽上。 一、芯片选型 PCIe转USB3.0芯片为vl805,...

2018-05-18 23:26:22 8049 3

原创 Haskell Monad (上)

函数式编程中的单子(Monad) 说到pure functional programming,实在是绕不过去Monad的。 pure function的特点 往往用函数式编程的思路写了几个程序之后就会遇到一个问题:针对具有状态更新的程序,似乎总是不太好处理。由于语言的纯粹性,相同的输入总...

2018-05-04 09:12:25 842 0

原创 复用 = 高阶函数和多态

高阶函数假设现在有一个计算销售额的函数,输入年份n,返回该年的销售额。sales :: num -> num我们可以这样定义一个计算总销售额的函数totalSales :: num -> numtotalSales 0 = 0totalSales n = totalSa...

2018-03-26 23:45:24 268 0

原创 图灵机与编程语言

年前看了一本科普书籍–《人工智能简史》,作者尼克,早年任职哈佛和惠普,后投资创业。 这本书描述了两大人工智能的发展方向,一派主张拟生物大脑(譬如人工神经网络),另一派则主张用逻辑和符号系统(譬如自动定理证明)。真正伟大的飞跃以1937年图灵关于可计算数的开创性论文开始,奠定了计算机发展的基础。 ...

2018-03-08 10:40:33 1523 1

原创 工作中的二三事

最近不知怎么搞的,老是容易累,也许是近期刚从普吉岛回来有关,身体还没完全适应上海的下雪天,又或许是对最近的生活不甚满意,我不知道。 以至于胡思乱想的突然又有了要写点什么东西的感觉,人啊,就是矫情。 关于工作质量 工作质量如何评估呢?这个恐怕要因工作而异了吧。做软件的都知道,软件开发最重要的一...

2018-01-29 23:24:00 441 4

原创 Haskell Lesson:a tokenizer

一、关于pure和impure Haskell作为一门纯函数式语言,副作用剥离是它的一大特色,基本上较为严格的遵循数学函数的形式。但是也带来了一些问题,譬如在实现一个文本编辑器的时候,需要把token记录下来,这个问题在C语言中很容易解决,搞个静态的变量即可,但是在Haskell中就没有那么容易...

2018-01-28 17:33:32 355 0

原创 Haskell Lesson:一些数学知识

补充一些数学知识一、幺半群(monoids)1.1 定义一种元素构成幺半群只需满足两个条件:能找到一个满足结合律的二元操作符,称之为(*),使得表达式a * (b * c) = (a * b) * c。存在一个单位元素,称为e,满足群的任意元素有:a * e = a且e * a = a操作*和单位...

2018-01-15 22:24:57 413 0

原创 记于2018年元旦后

转眼2017年已经过去了,又到了年终总结的时刻,回顾这一年,似乎很忙碌,但是却没有换来内心真正的充实的感觉。 生活 生活上很满足,安了个家,有了一个欢乐的媳妇,我俩的点点滴滴贯穿着整个2017。家里的事情基本都是由她负责,包括装修,买家具电器,日常生活用品。偶尔在家里做个饭,虽然不经常,但是每...

2018-01-06 00:47:00 457 0

原创 Haskell Lesson:高阶函数

微信公众号:牛顿一号 欢迎关注我,一起学习,一起进步! 前面在实现Graham扫描和Huffman编码的时候其实已经用到了高阶函数的知识。所谓高阶函数就是参数中带有函数,譬如 f2(x)f^2(x)。通过高阶函数可以进一步对运算过程进行抽象。一、foldl/foldr/map这几个函数提供...

2017-12-24 21:39:05 289 0

原创 Haskll Lesson:Huffman编码实现文本压缩

Haskell实战演练:实现哈夫曼编码一、Huffman编码理论学习资料https://web.stanford.edu/class/archive/cs/cs106b/cs106b.1126/handouts/220%20Huffman%20Encoding.pdf基本内容概述:huffman编...

2017-12-10 00:57:26 604 0

原创 Haskell lesson:类型系统解读

最近忙成狗了,吭哧吭哧终于把家搬完了,以后就长久的住在新家了,由于刚搬家,网线还没有接,又过了一个星期家里没网的日子。这一段时间又没时间好好整理haskell。甚是遗憾。从上次haskell实现Graham扫描算法到现在已经三周有余,这次分析一下haskell类型系统。首先回忆一下C语言是怎么构造...

2017-11-14 21:36:54 752 0

原创 Haskell lesson:实现Graham扫描算法

getMinDot :: (Num a, Ord a) => [(a,a)] -> (a,a) getMinDot ((x,y):pairs) = if pairs == [] then (x,y) else if or [yand [y==snd (getMinDot p...

2017-10-18 13:41:46 3406 5

原创 PCIe实践之路:Linux RC驱动

最新的4.12内核中对pci host driver进行一些划分,把基于designware IP的主控驱动放到drivers/pci/dwc目录下去了。如果是基于老的kernel开发,想要移植新版的内核的话,要注意,同时多了designware ep驱动框架。非designware的主控驱动还是...

2017-09-17 13:42:23 4079 0

原创 PCIe实践之路:Linux访问PCIe空间

Linux在枚举PCIe设备的过程由内核中的PCI框架负责,在EP配置完成之后,驱动通过以下接口访问PCIe空间,原理参考前文《大话PCIe:设备枚举》一、访问配置空间相关接口位于drivers/pci/access.c1.1 读配置空间 pci_read_config_byte(const st...

2017-09-03 20:32:16 9758 0

原创 游黄山、宏村记

五岳归来不看山,黄山归来不看岳 从八月份开始工作事情特别多,忙忙碌碌的,但是细细一想,其实也没有做什么特别重要的事情,正好女朋友公司组织出游,也把我带上了,就出去好好放松放松吧。黄山是我一直以来都特别想去的地方,美景特别多:迎客松、云海等等。而且我又对爬山情有独钟,虽然每次爬完身体很累,但是能换来...

2017-08-27 23:49:35 2073 6

原创 FreeRTOS任务调度研究

这篇文章不介绍FreeRTOS移植,只是最近针对多核ARM Cortex系列平台做了移植后的一篇总结研究文章。所以不涉及对FreeRTOS整体的介绍,而只是分析任务调度这一块的机制。对应的Demo参考自CORTEX_A9_Zynq_ZC702。 一、触发任务调度的两种机制 taskYIELD...

2017-08-17 22:51:32 4169 0

原创 PCIe实践之路:DMA机制

PCIe控制器也提供DMA(Direct Memory access)功能,用来批量地异步数据传输。 一、PCIe中的DMA读和写 假设现在

2017-07-28 20:47:05 18944 0

原创 PCIe实践之路:设备枚举

人的一生是一个不断认识自我,发展自我的过程。 认识PCIe设备的枚举过程需要以下知识: 拓扑结构 设备的表征及配置空间的访问 BAR空间的含义和访问 其中第1/2点在总线结构与配置空间已经介绍过了,第3点在BAR空间和TLP也已经进行过详细的介绍,可以说是万事具备。接下来涉及的过程有以下几个: 根...

2017-07-08 22:46:17 10452 7

原创 PCIe实践之路:BAR空间和TLP

上一篇文章中写到每个PCIe的function都有自己的configuration space,其实就是配置寄存器了(这个当然是要有的了,不然软件要怎么玩?只不过PCIe的配置寄存器要通过tlp才能去访问)。其实PCIe设备是有自己独立的一套内部空间,不仅仅是配置空间,包括每个设备提供哪些I/O地...

2017-07-02 20:28:40 17545 0

原创 PCIe实践之路:总线结构与配置空间

把有限的精力花在真正有价值的事情上。 一、网络拓扑与设备端口上一篇已经讲到构成PCIe网络的三个角色:RC、SW和EP。其实这整个网络给人感觉就像乐高积木,上一级设备的下游端口接下级设备的上游端口,然后端口不但能看出链接状态,还提供包传输的链路。这里有两个常见的概念:DSP(Down Stream...

2017-06-30 00:41:27 8230 3

原创 PCIe实践之路: 发展与应用

介绍PCIe的基本概念,用途。 一、串行总线PCIe作为串行总线的一种,它的发展必然和另一种总线架构密不可分:并行总线。早先,人们普遍认为提高数据位宽就能提高数据传输速率,这是谁都会想到的问题,早期的总线确实是这样设计的。但是随着工作频率的提升,并行数据线的串扰变得越来越严重,而串行总线采用差分对...

2017-06-28 23:29:29 4552 1

原创 访问PCIe BAR空间

对BAR空间以及配置空间的访问做一个系统的总结,其实就是在回答以下几个问题: 1. PCIe中四种tlp和BAR空间的关系是怎样的? 2. tlp是怎么发起的? 3. tlp是怎么到相应的下游设备的?

2017-06-20 23:31:54 8870 0

原创 beautiful C code(updating)

记录看到过的让人眼前一亮的C代码,通常是简洁高效的一些做法 移位操作 在designware usb2.0 otg driver中看到 u32 daint, daintmask; daint &= daintmask; daint_out = daint >> ...

2017-06-06 23:15:31 866 0

原创 python搜索效率研究

天地不仁,以万物为刍狗 –老子 本文来研究在python中查找元素的效率问题,实验方法如下: 初始化一个大列表和字典,其中分别存放了10000000个元素。 查找的元素以1000000的间隔递增,检测程序执行速度。 自己实现顺序比较查找,用同样的方法进行测试,并和其他方法进行对比。 一、程序实现程...

2017-06-04 21:38:48 925 0

提示
确定要删除当前文章?
取消 删除