精华内容
下载资源
问答
  • 最后发现是因为我所使用的软件版本是quartus ii web edition,免费版本,所以有些ip核就权限限制,导致生成sof文件为time_limited文件,并最终导致无法识别system id。 在这里建议各位虽然一定程度上要尊重版权...

    我在做毕业设计期间被这个bug折磨得死去活来,在网上搜索的方法全都测试了一遍也没有办法解决。最后发现是因为我所使用的软件版本是quartus ii web edition,免费版本,所以有些ip核就有权限限制,导致生成的sof文件为time_limited文件,并最终导致无法识别system id。

    在这里建议各位虽然一定程度上要尊重版权,但是学sopc,eda就不要想太多了,最好找个破解版就行了。

     

    展开全文
  • Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会很大的差异。 15、final, finally, finalize的区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...
  • 创世区块众所周知,区块链是一个类似于链表的结构,每一个区块都具有唯一的Hash值,...创世区块最显著的特征就是没有父区块,通常创世区块不是由矿工挖掘出来的,而是预先生成并将创世区块的Hash写进了钱包软件的...

    创世区块

    众所周知,区块链是一个类似于链表的结构,每一个区块都具有唯一的Hash值,后一个区块通过记录前一个区块的Hash值,来表明父子关系。一条区块链可以无限延伸,然而却一定要有一个开端,一个让这条区块链从无到有的区块,这个区块的名字就叫创世区块(Genesis Block)。创世区块最显著的特征就是没有父区块,通常创世区块不是由矿工挖掘出来的,而是预先生成好并将创世区块的Hash写进了钱包软件的代码中。

    在以太坊钱包的官方实现Geth的代码中,我们可以找到这个创世区块的Hash。

    源代码:params/config.go

    var (
    	MainnetGenesisHash = common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3") // Mainnet genesis hash to enforce below configs on
    	TestnetGenesisHash = common.HexToHash("0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d") // Testnet genesis hash to enforce below configs on
    )
    

    其中的0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3就是创世区块的Hash了。到区块链浏览器中看一下,果然如此,高度为0的创世区块。

    等等,下面那个TestnetGenesisHash = 0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d是什么鬼,为什么区块链浏览器中查不到?


    主网络与测试网络

    前面说到一条区块链由一个创世区块开始,也就是说,一个创世区块可以创造和代表一条区块链。如果我们给钱包客户端设定不同的创世区块,它就将工作在不同的区块链上。

    工作在同一条区块链上的全部节点,我们称之为一个网络。

    绝大多数人在使用的网络被称为主网络(Mainnet),用户在其上交易、构建智能合约,矿工在其上挖矿。由于使用的人数众多,主网络的鲁棒性很强,能够对抗攻击,区块链也不易被篡改,因此主网络是具有功能的,其上的以太币是有价值的。

    通常一种区块链只有一个主网络,比如比特币,莱特币,以太坊,都只有一个主网络。主网络之外可以有若干个测试网络。

    既然已经有了一个主网络,为什么还要弄出测试网络呢?

    我们先来讲一个故事。

    (小王是一家软件公司的程序员,每天起得比鸡早,睡得比牛晚,可以说是兢兢业业。最近区块链技术比较火,老板想出了一个点子。)

    老板:小王啊,你去在以太坊上给我开发个智能合约,咱也来个ICO。 小王:好的,老大。

    (小王满口答应,然而他心里却在犯嘀咕,这活儿我没干过啊。没关系,工程师嘛,什么不能学呢?小王一个通宵,就把以太坊研究明白了,第二天找到老板。)

    小王:老板,我需要一些以太币来测试。

    (老板就是老板,大笔一挥,给了小王1000个以太币,拿去测试吧。小王满怀信心的按下了回车,突然,他意识到,程序出了bug,这1000个以太币将被永远锁定,无法再使用。小王垂头丧气的找到老板,祈求老板的原谅。)

    老板:什么?1000个以太币被永远锁定了?没事儿,才值200w而已。

    (小王满心欢喜,正想感谢老板的宽恕。老板一个诡异的微笑,看了一眼身后的保安。)

    老板:拿他祭天吧。

    (这天下午,在公司前面的广场上,员工们盛装华服,将小王绑在火刑架上,点燃柴堆。大家一起祈祷这次ICO可以成功,公司蒸蒸日上,程序再也没有bug。数日后的ICO发布会上,老板告诉投资人,他们一定能赚钱,因为我们“杀了个程序员祭天”。)

    主网络中的以太币是有价值的,在主网络上直接进行钱包软件或者智能合约的开发将会是非常危险的,稍有不慎就会损失以太币,甚至影响整个主网络的运行。同时,因为主网络使用人数多,矿工更是不计其数,如果是在开发一个挖矿软件,用一台开发软件的笔记本电脑几乎不可能挖出一个区块,这就导致测试几乎不可行。

    于是,出于测试和学习的目的,便会有一小部分节点,使用与主网络不同的创世区块,开启一条全新的区块链,并在上面挖矿和测试,这就是测试网络(Testnet)


    以太坊的测试网络

    以太坊可以搭建私有的测试网络,不过由于以太坊是一个去中心化的平台,需要较多节点共同运作才能得到理想的测试效果,因此并不推荐自行搭建测试网络。

    以太坊公开的测试网络共有4个,目前仍在运行的有3个。每个网络都有自己的创世区块和名字,按开始运行时间的早晚,依次为:

    • Morden(已退役)

    Morden是以太坊官方提供的测试网络,自2015年7月开始运行。到2016年11月时,由于难度炸弹已经严重影响出块速度,不得不退役,重新开启一条新的区块链。Morden的共识机制为PoW。

    Ropsten也是以太坊官方提供的测试网络,是为了解决Morden难度炸弹问题而重新启动的一条区块链,目前仍在运行,共识机制为PoW。测试网络上的以太币并无实际价值,因此Ropsten的挖矿难度很低,目前在755M左右,仅仅只有主网络的0.07%。这样低的难度一方面使一台普通笔记本电脑的CPU也可以挖出区块,获得测试网络上的以太币,方便开发人员测试软件,但是却不能阻止攻击。

    PoW共识机制要求有足够强大的算力保证没有人可以随意生成区块,这种共识机制只有在具有实际价值的主网络中才会有效。测试网络上的以太币没有价值,也就不会有强大的算力投入来维护测试网络的安全,这就导致了测试网络的挖矿难度很低,即使几块普通的显卡,也足以进行一次51%攻击,或者用垃圾交易阻塞区块链,攻击的成本及其低廉。

    2017年2月,Ropsten便遭到了一次利用测试网络的低难度进行的攻击,攻击者发送了千万级的垃圾交易,并逐渐把区块Gas上限从正常的4,700,000提高到了90,000,000,000,在一段时间内,影响了测试网络的运行。攻击者发动这些攻击,并不能获得利益,仅仅是为了测试、炫耀、或者单纯觉得好玩儿。

    为了解决测试网络中PoW共识机制的问题,以太坊钱包Parity的开发团队发起了一个新的测试网络Kovan。Kovan使用了权威证明(Proof-of-Authority)的共识机制,简称PoA。

    PoW是用工作量来获得生成区块的权利,必须完成一定次数的计算后,发现一个满足条件的谜题答案,才能够生成有效的区块。

    PoA是由若干个权威节点来生成区块,其他节点无权生成,这样也就不再需要挖矿。由于测试网络上的以太币无价值,权威节点仅仅是用来防止区块被随意生成,造成测试网络拥堵,完全是义务劳动,不存在作恶的动机,因此这种机制在测试网络上是可行的。

    Kovan与主网络使用不同的共识机制,影响的仅仅是谁有权来生成区块,以及验证区块是否有效的方式,权威节点可以根据开发人员的申请生成以太币,并不影响开发者测试智能合约和其他功能。

    Kovan目前仍在运行,但仅有Parity钱包客户端可以使用这个测试网络。

    Rinkeby也是以太坊官方提供的测试网络,使用PoA共识机制。与Kovan不同,以太坊团队提供了Rinkeby的PoA共识机制说明文档,理论上任何以太坊钱包都可以根据这个说明文档,支持Rinkeby测试网络,目前Rinkeby已经开始运行。


    连接测试网络

    目前开发人员最常用的测试网络是Rinkeby,我将演示一种最简单的连接和使用Rinkeby的方法。


    下载以太坊钱包:ethereum/mist

    根据使用的操作系统不同,在下图红框中选择合适的版本,下载解压。

    MIST其实只是以太坊钱包的一个图形界面,后端还是官方的Geth,只是可以使用图形化的方式操作,减少了出错的几率,降低使用门槛。MIST是使用Electron开发的,具有跨平台的能力,所以在各个系统上的界面和操作应该是基本一致的。

    第一次启动时,记得选择测试网络。

    在测试网络上创建一个钱包地址,并给钱包加个密码。

    片刻之后,一个钱包地址就创建完成了,每个人的地址都不相同。由于是测试网络,地址不需要保密,我就不打马赛克了。

    之后点击下面的“LAUNCH APPLICATION!”就可以进入主界面了。

    注意:一定要确保左下角有个红色的Rinkeby字样,这表明你正在Rinkeby测试网络中。

    点击右侧红框,就可以看到你的钱包地址的余额了,现在应该是0以太币。

    首次启动时,需要同步区块链,这需要一段时间,大约1小时左右。


    获取测试网络上的以太币

    Rinkeby测试网络使用的是PoA共识机制,我们不能通过挖矿来获取以太币。

    想获取Rinkeby测试网络中的以太币,需要去申请,这个申请Rinkeby以太币的功能被称为水龙头(Faucet)。还真是挺形象的,水龙头会源源不断的产生以太币,并且受到权威节点控制,以确保不会被滥用。

    进入这个水龙头的网站:Rinkeby: GitHub Faucet

    为了确保不会出现有人滥用水龙头,无限生成Rinkeby以太币,水龙头需要借助github账号来确定申请者的身份和配额。没有Github账号的小伙伴记得要去注册一个,并且登陆。

    进入gist.github.com/,把测试钱包账户的地址粘贴进去,并点击“Create public gist”,就像下图这样。

    点击之后,把浏览器上方的地址复制下来,粘贴到水龙头页面的输入框中。并点击“Give me Ether”,有三种选项,前面是获得的以太币数量,后面是冷却时间,在冷却时间过后才能进行下一次以太币申请。

    如果一切顺利,你会看到你的钱包地址已经多出了申请数量的以太币,我申请了3个以太币。

    到Rinkeby的区块链浏览器查看一下,也能查到我的钱包地址0xA54BF5C1059D24ac1943F332851a2F0779EDD026

    如果申请的人数很多,需要排队等待一会儿,我自己在使用过程中,最多等过半小时,申请的以太币金额越大,一般需要等待越多的时间才能到账。


    为什么申请测试网络的以太币如此繁琐呢?

    以太币在以太坊平台中的设计功能是用来支付EVM中执行指令消耗的Gas,如果可以被无限制的产生,就会出现有恶意用户出于各种目的,用无限制的以太币换无限制的Gas,在EVM中执行超多的指令,并逐渐抬高区块Gas上限。EVM中的指令要在每一个以太坊节点中执行,这种攻击一旦出现,对网络将会产生很大的影响,所以测试网络中的以太币必须针对每个开发者限量供应。不过这个限量对正常的开发测试来说,几乎不会造成影响。


    如果你看到了这里,并且成功的在自己的电脑上运行了钱包、连接测试网络、申请以太币,那么恭喜你,你已经做好了进一步学习和了解以太坊的准备。之后的文章中,将会介绍如何编写一个智能合约,这是以太坊最重要的一项功能,敬请期待。




    展开全文
  • 69、两个对象值相同(x.equals(y) == true),但却可不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...
  • 是一个比较好的辅种工具,但现在只有PHP版,没有浏览器插件版本。 不知道开发组没意向将IYUU的辅种功能移植集成到助手中。 描述你想要的解决方案 根据IYUU项目介绍工作原理为调用transmission、...
  • git是一款非常好用的分布式的版本控制软件,然后最近看了git底层实现的一些东西(也不是很底层),记录总结一下,以便更好的理解使用git。 本文主要是从三个对象说起。 三个对象 三个对象分别是git对象、tree对象、...

    写在前面

    git是一款非常好用的分布式的版本控制软件,然后最近看了git底层实现的一些东西(也不是很底层),记录总结一下,以便更好的理解使用git。

    本文主要是从三个对象说起。

    三个对象

    三个对象分别是git对象、tree对象、commit对象。

    三个对象对我们理解git如何组织和保存数据,以及git的各种操作如何实现非常有帮助。

    git对象

    git对象对应的是单个的文件内容,保存在版本库中。

    git对象没有名字,是通过文件内容的哈希值来进行标识的。

    可以通过底层命令git hash-object 文件路径来查看文件的哈希值,通过git hash-object -w 文件路径生成相应的git对象保存在版本库中并返回其哈希值。

    高层命令中,当使用git add的时候,其实已经生成相应文件的git对象并将其保存在版本库中,然后将哈希值放入暂存区,通过哈希值引用git对象。

    以我目前的了解,应该是没有命令能删除git对象,除非你进入./git/objects目录手动删除,也就是只要执行过git add操作,git就已经帮我们将文件内容保存了,即使后续没有提交,也能找回相应的文件内容。

    tree对象

    tree对象对应的是项目的内容,保存在版本库中。

    tree对象同样没有名字,是通过哈希值来标识。

    tree对象是类似多叉树的结构,通过哈希值引用git对象和其他的tree对象,以此将不同的文件组织起来形成一个整体的项目。

    可以通过底层命令git write-tree将暂存区中的对象以一颗树的形式存入版本库,并返回tree对象对应的哈希值;通过git read-tree 哈希值将对应的数对象加入暂存区(感觉没有必要把树拿入index,只拿哈希值也没什么问题,后续求证)。

    commit对象

    commit对象其实就是在tree对象上包装了一层,附加了一些其他的信息,比如注释,提交者等,最重要的是commit对象有一个parent指针,指向父提交对象,这是我们进行版本回退的重要依据。

    可以通过底层命令git commit-tree 哈希 -p 父对象哈希创建提交对象。

    总结

    真正的项目版本对应的是一个commit对象,三个对象之间的关系如下图。
    在这里插入图片描述


    展开全文
  • Reversing:逆向工程揭密

    热门讨论 2010-06-21 17:00:47
    这时候,我逐渐明白这是一种威力强大技术,因为这意味着不管我有什么样有关要处理软件的问题,我都可以非常容易地找到答案,即使我没有看过任何相关文献资料或者正在处理程序源代码。本书就是要为每一个对...
  • 本书翻译原文来自美国PGP安全软件公司产品PGP Desktop 9.9.0软件包中Jon Callas在 2006年所著《An Introduction to Cryptography(Intro To Crypto.pdf(CRC-32:79EE7FEF))》,原文意旨在于使所有普通人都可以...
  • ”又担心这种没有实际意义回答带说教意味,打击别人积极性,所以通常看看而已。实际上我是想说,对于一个DBA来讲,当你拿到一个数据库时候,你首先需要做是用最短时间来了解一下跑在这个库上是一个...
  • 书籍的第2章便是一个C语言的入门教程,内容非常易懂,并且十分实用,阅读完这章就可以对本书需要的C语言基础一个较好的掌握。本书已经覆盖了大部分基础经典算法,不仅可以作为考研机试和PAT的学习教材,对其他的...
  • MD5源码(C++)

    热门讨论 2009-09-07 19:13:52
     尽管MD4算法在安全上个这么大漏洞,但它对在其后才被开发出来的好几种信息安全加密算法出现却有着不可忽视引导作用。除了MD5以外,其中比较有名还有sha-1、RIPEMD以及Haval等。  一年以后,即1991年,...
  • Windows用户密码查看工具

    热门讨论 2009-12-27 17:53:12
    就需要单击“选项(Options)”项下“NT hash 选项(NT hash Options)”按钮,在出现右侧界面下把“仅查看恢复 hashes(View only the recovered hashes)”项前对勾取消掉,钩选时则只能看到非管理员用户,...
  •  Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版飞鸽传书软件,但是Java版确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能提升很帮助。 Java聊天程序,包括服务端和...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版飞鸽传书软件,但是Java版确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能提升很帮助。 Java聊天程序,包括服务端和...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构:第2版(世界顶级专家Thomas Kyte力作) 基本信息 原...
  • 本版本是高清版,是第1版第18次印刷,是书签最全最好版本。 基本信息 原书名: The C++ Programming ...16.2.2 基类容器 388 16.2.3 stl容器 391 16.3 向量 392 16.3.1 类型 393 16.3.2 迭代器 394 16.3.3...
  • 提供是本书课后习题源代码,也就是《C++程序设计语言(特别版)题解》源代码。非书中源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好版本。 基本信息 原书名: The C++ ...16.2.2 基类...
  • C++程序设计语言(特别版)--源代码

    热门讨论 2012-04-23 07:33:51
    提供是书中源代码,非课后练习源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好版本。 基本信息 原书名: The C++ Programming ...16.2.2 基类容器 388 16.2.3 stl容器 391 16.3 向量 392...
  • java 面试题 总结

    2009-09-16 08:45:34
    Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会很大的差异。 12、final, finally, finalize的区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    一、Java基础知识 1.Java那些基本数据类型,String是不是基本...这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用。它是在 Object 类中定义,因此所有类都继承了它。子类覆盖 finalize() ...
  • Java资源包01

    2016-08-31 09:16:25
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • java开源包101

    2016-07-13 10:11:08
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle DBA突击:帮你赢得一份DBA职位 基本信息 作者: 张晓明 丛书名: IT名人堂 出版社:人民邮电出版社 ...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    你定义Java源代码语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面支持,无缝集成IDE(语法着色,代码导航,重构等)语法和操作代码完全分离。最大限度地减少时间和费用开发...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

有没有好的hash软件