PascalCoin新算法梳理(方便开发

概述

  1. 要求N次(轮)迭代下散列计算一个nonce

  2. 每轮从16个著名算法中选择一个随机散列算法

  3. 第x轮的输入值用所有先前轮的输出加盐

  4. 第x轮是输入是一个先前、临近轮的输出的压缩,大小100bytes

  5. 每轮输出是扩充,为了实现内存难度

  6. 随机性使用Mersenne Twister算法生成

  7. 随机性是通过每轮MurMur3校验和来播种

  8. 最终轮然后会被Sha2_256重新散列计算,来保持传统加密货币的方式

一点都不简单明了

伪代码分析

首先定义N为5 (那么总共的参与计算的轮数即为2^5 - 1 = 31
M(内存膨胀单元)为10KB

在第一轮:

  1. 先对区块头进行校验和计算出seed【1】

  2. 通过seed生成随机数【2】

  3. 设置roundInput为区块头

  4. 获得gen的下一个双字节值除18取余的余数,取出hash_algo列表中对应下标的散列计算方式。

  5. 用取出的散列计算方式计算roundInput获得输出值

  6. 将输出值通过 N-轮数 扩展内存难度。()

  7. 将最终输出值添加进roundOutputs这个数组中

  8. 返回这个roundOutput数组

在其他轮(2-N):

  1. 先设置父输出值为之前轮RandomHash结果(利用这个进行迭代)
  2. 设置seed为上个RandomHash输出的校验和
  3. 通过seed获得一个随机数
  4. 将所有的之前的输出值都放入roundOutputs数组之中
  5. 再使用ChangeNonce【3】对区块头换个nonce
  6. 对新的区块头,设置邻近输出值为对其的前几轮RandomHash结果
  7. 将这些也加入roundOutput数组中
  8. 将roundOutput进行压缩获得roundInput

重复上面4-8

计算细节:
【1】校验和计算:标准MurMu3算法 (可计算一个字符数组或者字符数组的数组)
【2】随机数生成:标准的Mersenne Twister(梅森旋转演算法)随机数生成
【3】改变nonce:克隆并修改区块头中的nonce值。(通过确定nonce的位偏移)
【4】压缩:输入为一个Byte数组的列表

  1. 对input进行校验和计算,
  2. 对计算结果进行随机数生成
  3. (强制)定义输出为一个100长度的Byte
  4. 循环100(i = 0-99)次,每次先设source为输入值中“第随机数除输入值长度的取余”个。然后输出值中第i个即为source中第“随机数除source长度取余”个。最终得到一个100长度的结果
    【5】扩展:输入为一个Byte的数组 以及一个整数作为扩展因数
  5. 对input进行校验和计算
  6. 对计算结果进行随机数生成
  7. size为输入的长度+ M×扩展因数,M为10KB
  8. 输出为输入的克隆
  9. 设置将加入的bytes个数为size-输入长度
  10. 当将加入的bytes个数>0时,设 下一数据块为输出的clone 如果
    下一数据块长度比将加入的bytes个数大那么将下一数据块长度重新设置为将加入的bytes个数。然后对随机数除8取余 额……++不知道是什么操作……大概是次方?

反正对应8种操作:

  1. 不操作 (e.g. input = 123456 output = 123456)
  2. 不乱序,中间交换前后 (e.g. input = 123456 output = 456123)
  3. 反转 (e.g. input = 123456 output = 654321)
  4. 左交错 (e.g. input = 123456 output = 142536)
  5. 右交错 (e.g. input = 123456 output = 415263)
  6. 左亦或 (e.g. input = 123456 output = XOR(1,2), XOR(3,4), XOR(5,6), XOR(1,6), XOR(2,5), XOR(3,4)
  7. ROL递增 (e.g. input = ABCDEF output = ROL(A, 0), ROL(B, 1), ... , ROL(F, 5)
  8. ROR递增 (e.g. input = ABCDEF output = ROR(A, 0), ROR(B, 1), ... , ROR(F, 5)

TESTNET挖矿软件源码分析

基于TESTNET v3.1
文件:pascalcoin_miner.pp
首先这个挖矿软件的GPU部分是基于cl的,不照顾cuda。
CPU挖矿:TCPUDeviceThread.Create (src/core/UPoolMinerThreads.pas)
GPU挖矿:TGPUDeviceThread.Create (src/core/UGPUMining.pas)

主要目标是GPU

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 项目中大家可能都遇到过 需要删除某一个View的所有子View 但是,大家会发现iOS的View提供了一个 rem...
    橙园大菜阅读 147评论 0 0
  • 昨天东岗路出现了大拥堵,为什么呢?原来是一个文化课的培训机构要组织小升初考试。各路爸妈,从城市的各个角落蜂蛹赶来,...
    燕子飞过的痕迹阅读 264评论 0 0
  • 绵阳作为“科技之城”闻名已久。 去绵阳多次了,这次却因菊花展而爱上她。绵阳不大,却很喜欢她的交通便利,小城市风范又...
    北海二十一阅读 604评论 12 4
  • 文/迟溯 终于做了一个决定。 太急躁了,从出生开始,马不停蹄地向前奔,漫无目的地,也随波逐流地。不敢停下来想一想...
    PastTracer阅读 843评论 3 4