iOSer 2018年终总结: 做了什么与区块链感想 | 掘金年度征文

291 阅读7分钟

前言

年终总结这么个事,想了很久了,一直都想做一下。但是,碍于拖延症晚期,总是拖着,一直就到现在,都到新的一年的1月中旬了。

说到底,这篇文章的目的就是为了总结一下2018年的相关成果,并且为2019年做出一个关于个人成长的初步计划。

正文

2018 做了什么

  1. 比特股 Bitshares的运行,及其原理有了较为深入的研究

因为上一家公司内部人员纠纷的原因,使公司的相关C++人员尽数出走,导致公司的区块链后台无人可用。

因此,接手了后台区块链项目。

顺便学习了,c++的一些语法(感觉还是Objective-c好用),和cmake的相关使用。

总结了Bitshares相关使用的一些文章: 简书专栏

封装了Java 和 Objective-c 的 BitsharesClient 库, 并开源到GitHub上。

Java 版: github.com/chouheiwa/b…

Objective-c 版: github.com/chouheiwa/B…

  1. 于年末换了新公司,重新做回iOS开发

学习Swift语言

为了更为深入的掌握Swift,用Swift重写了开源socket库CocoaAsyncSocket

SwiftAsyncSocket

通过重写,深刻的掌握了CocoaAsyncSocket的设计理念,与底层socket逻辑的调用

2018 做了什么(题外)

  1. 入手了树莓派3b+ ,并且深深的爱上了,GPIO口操作点亮LED灯的那种感觉。

购入了8 * 8 单色led 点阵,并且成功实现了点阵显示指定数字与心形(教程与相关操作源码随后会正式放入github开源)

  1. 学习了Linux系统的shell命令与基础操作

2018 感想

在内心一直觉得2018年做了好多好多的事情,觉得成长了很多。但是总结下来发现,其实远远比想象的少。也许是因为我把大部分的时间浪费在了游戏与其他消遣活动上,因此在2019年要减少相关时间的消费,加大对技术的钻研。

谈谈区块链
  1. 区块链的含义
  • 区块(block)

    从广义上讲,我们以一定格式打包的数据就可以被称作区块

  • 链(chain)

    把上述的区块(数据)顺序存储起来,就可以被称作为链了。

    因此区块链实际上就是统一格式的数据的链式存储

  • 区块链 (block chain)

    1. 不可篡改

    区块链的区块数据格式中有一个比较特殊的字段,它存储上一个区块的内容的hash摘要。这个字段的目的是为了校验上一个区块链数据的真伪。

    Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

    性质:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但不绝对肯定二者一定相等(可能出现哈希碰撞)。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。

    摘自 百度知道

    因为这个hash的存在,使得这个区块链的存储数据如果篡改某条数据,同时保证篡改数据后下一个区块的hash记录不变是几乎不可能完成的。

    这就是区块链的不可篡改

    1. 去中心化和分布式 (不是所有区块链都具有)

    为了保证去中心化,这就要求一个区块链项目必须开源(如果源码不公开,我们如何知道他们是怎么做到写入数据的,又如何保证数据的真实性的)。

    同时为了保证整个区块链网络的不可篡改,区块链采用的是每个设备(节点)都记录相同的数据,采用的51%策略(多数人正确)。

    这种策略保证了,如果参与这个区块链系统工作的设备足够多,攻击者攻击成功的成本将远大于攻击者的收益。因此,将不会有人愿意攻击。

    区块链为了完成这种策略,逐步衍生了几种算法(我就不过多介绍了)

    分布式的意思就是:

    只要区块链系统中有一个可用设备,区块链系统就能正常工作。

含义讲的可能不是那么的细致,因为篇幅所限

  1. 我对区块链的看法

算下来,在‘新技术’的前沿阵地,区块链公司干了1年多,期间也见过不少公司客户。

给我感触最多的就是,区块链这个‘高新技术’的背后,是多少人倾家荡产的现实和一夜暴富的梦想堆积出来的一个彻彻底底的泡沫。

首先,区块链并没有什么新技术,只是东拼西凑的一些成熟技术组合在了一起:

  • 分布式算法

    分布式算法和区块链真的有关系么?

    没有区块链的时候,后台做集群服务用的算法不是分布式算法么?

    区块链无非就是推出了一个 POS(工作量证明)DPOS (股权证明)之类的公网可用算法

  • 不可篡改和去中心化

    这些概念也不是新概念

    其实并不是不可篡改,我们如果想篡改某些数据的话,只需要把这个数据以后的数据都改了就可以了

    基于去中心化来说,我们只要保证,我们有51%以上,区块链将属于我们

    这也就是为什么,比特大陆 的算力将要突破 51% 的时候会 宣布,会引发全网忧虑。

    同时,更说明了,这个社会,不存在真正的去中心化

刚才我们说的是概念,和去中心化的问题。接下来我想说的是小公司(小币种)的操作。

小公司的做法通常都是:

出个白皮书(吹嘘自己区块链技术的高大上)->拉新(微信拉群,传播自己币种,说自己币种肯定大涨)->募集初期资本(让投资人投钱进来,以低价换币)->上架交易所(开通割韭菜渠道)->快速做市(拉升币价,吸引韭菜入市)->高点抛售(割韭菜/投资人成功)

公司客户绝大多数都是这种,甚至还有客户跟我们说"我之前就是干传销的,就是不缺人"

在这种环境呆久了,自然对区块链的态度消极。

但是,是真赚钱!!

所以国家每次出台针对区块链的打击政策的时候,我都很支持(尽管我当时在区块链公司工作)

我对公司还是很感激的,因为毕竟它给了我信任让我接触更多的技术,让我这一年的提升很大

2019 的规划

  1. 继续完善开源Socket库SwiftAsyncSocket
  2. 对socket的研究更加透彻,并且总结出相关socket使用文章
  3. 提升对lua语言逆向方面的能力(打算去吾爱好好混混了)
  4. 写出10篇以上的心得体会(不是很水的那种)
  5. 写写clang插件,并研究研究编译与运行原理

总结

在2019年,希望自己努力进步,更上一层楼,也希望到2020年的时候看这篇文章不会被自己的目标打脸(本来也没定下来多少目标-_-)

本文首发于,本人博客与公众号(见下图),如果希望转载到公众号,请联系本人开通权限。

公众号

掘金年度征文 | 2018 与我的技术之路 征文活动正在进行中......