区块链
文章平均质量分 61
全栈独立开发者阿昌
这个作者很懒,什么都没留下…
展开
-
在同一台电脑上启动多个以太坊节点
如果已经通过类型如下命令启动了一个节点geth --datadir "./" --nodiscover console 2>>geth.log该命令启动的端口默认为30303再运行如下命令:geth --datadir "./" --nodiscover console 2>>geth.log --port "30304"会报如下错误:Fata...原创 2018-09-03 21:52:19 · 2172 阅读 · 3 评论 -
Fatal: Failed to start mining: etherbase missing: etherbase must be explicitly specified
可以在geth 命令后面加上--mine 来自动启动挖矿, 加上--minerthreads 参数表示挖矿的线程数例如geth --mine --minerthreads=4功能等效于miner.start(4)也可以在console里面用miner.start(4)来启动挖矿 miner.stop()来停止挖矿.> miner.start(8)true> min...原创 2018-09-03 21:45:07 · 4199 阅读 · 0 评论 -
cannot unmarshal invalid hex string into Go struct field CallArgs.data of type hexutil.Bytes
报这个错误是因为创建Transaction的时候传进入的data不是hex 将data转化为hex就可以了.具体如下:String remarksHex = HexUtils.toHexString(remarks.getBytes("UTF-8")); ...原创 2018-09-03 21:36:11 · 4921 阅读 · 0 评论 -
对以太坊datadir的理解
1:通过geth init xx.json创建的私链 默认的datadir为用户目录下的.ethereum2:也可以通过加参数--datadir 制定目录 geth init xx.json --datadir xxxxxx原创 2018-09-05 21:57:40 · 1521 阅读 · 0 评论 -
以太坊中GetTransactionReceipt 与 GetTransactionByHash区别
1:GetTransactionReceipt 返回的gas是真实交易消耗的 blocknumber不为空 GetTransactionByHash返回的gas是传过去的值 blocknumber有可能为空 2: cumulativeGasUsed 表示该交易所在块中的所有已被打包的交易中的gas的总和。 ...原创 2018-09-05 21:52:10 · 5153 阅读 · 0 评论 -
ubuntu18.04另外一种方式安装Supervisor教程
apt install python-pippip install supervisorfind / -name *supervisor* 通过这个命令发现supervisor被安装在了~/.local/bin里面了export PATH=~/.local/bin:$PATH 这是是临时的 没有永久永久方法:vi /etc/profile 输入i在底部插入export...原创 2018-09-08 11:39:36 · 1165 阅读 · 0 评论 -
ubuntu18.04安装supervisor进程管理
1:sudo apt install supervisord通过这种方式安装之后 supervisord会被安装到/etc/bin并且会自动加入到系统服务里面 随着系统启动而启动主配置文件在/etc/supervisor/里面2:执行sudo vi /etc/supervisor/supervisord.conf 打开文件编辑为如下; supervisor config fil...原创 2018-09-08 11:35:28 · 3408 阅读 · 0 评论 -
RawTransaction.createTransaction中的参数gasPrice gasLimit不能为空 不然会报java.lang.NullPointerException错误
通过查看web3j源码得知有两处会用到这两个变量1:result.add(RlpString.create(rawTransaction.getNonce()));result.add(RlpString.create(rawTransaction.getGasPrice()));result.add(RlpString.create(rawTransaction.getGasLim...原创 2018-09-04 20:59:32 · 1518 阅读 · 0 评论 -
iframe高度自适应
function setIframeHeight(iframe) { if (iframe) { var subWeb = document.frames ? document.frames["menuFrame"].document : iframe.contentDocument; if (iframe != null &am...原创 2018-08-14 14:25:01 · 266 阅读 · 0 评论 -
1 分鐘搞清 Gas/ Gas Price/ Gas Limit
1 分鐘搞清 Gas/ Gas Price/ Gas LimitImage credit: https://www.youtube.com/watch?v=yFb2nuUUDX0好多朋友係第一次接觸 eth 既時候,都會搞唔清什麼是 Gas, Gas Price 同 Gas Limit。我地會逐一介紹同埋解析佢地之間既關係,希望大家睇完呢篇文會有一個基本概念。Gas — 就係交易 ...转载 2018-08-14 09:25:22 · 360 阅读 · 0 评论 -
ubuntu18.04 安装Redis
1:下载redis源码wget http://download.redis.io/redis-stable.tar.gz2:解压 tar xvzf redis-stable.tar.gz3:进入redis-stable目录cd redis-stable4:build源码make5:测试一下build是否成功了make test如果看到如下输出\o/ Al...原创 2018-09-16 10:25:59 · 2053 阅读 · 1 评论 -
Building Qt
1:先安装qt的依赖库sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev \libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev l...原创 2018-09-16 10:29:47 · 2681 阅读 · 1 评论 -
在ubuntu上部署nano节点
1:安装git sudo apt install git2:下载源码 git clone https://github.com/nanocurrency/raiblocks.git3:进入raiblocks目录git checkout releases/v12切换到 releases/v12这个分支4: sudo apt install gcc不然运行bash ci/boots...原创 2018-09-16 10:42:10 · 1630 阅读 · 0 评论 -
c++学到知识点
1:将boost::property_tree::ptree转化为string输出std::stringstream ss;boost::property_tree::json_parser::write_json (ss, tree);std::cout << ss.str () << std::endl;2:boost::asio::ip::address...原创 2018-11-07 10:22:22 · 264 阅读 · 0 评论 -
跑nanovault钱包客户端报错Uncaught ReferenceError: regeneratorRuntime is not defined
Uncaught ReferenceError: regeneratorRuntime is not defined at eval (TransportU2F.js:120) at eval (TransportU2F.js:142) at Object.eval (TransportU2F.js:228) at eval (TransportU2F.js:25...原创 2018-11-07 10:01:22 · 3356 阅读 · 0 评论 -
cmake报错undefined reference to `pthread_create'
CMakeFiles/helloboost.dir/condition_variable.cpp.o: In function `main':/usr/include/c++/7/thread:126: undefined reference to `pthread_create'collect2: error: ld returned 1 exit statusCMakeFiles/he...原创 2018-10-23 10:15:34 · 3348 阅读 · 0 评论 -
java实现将参数排序并拼接起来
/*** 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串** @param params* 需要排序并参与字符拼接的参数组* @return 拼接后字符串*/public static String createLinkString(Map<String, String> params) {List<String> ke...转载 2018-09-29 22:53:45 · 4602 阅读 · 0 评论 -
解决replacement transaction underpriced以太坊交易异常
replacement transaction underpriced异常问题概述以太坊系列(ETH&ETC)在发送交易有三个对应的RPC接口,分别是ethsendTransaction、ethsendRawTransaction和personal_sendTransaction。这三个接口发送(或构造发送内容时)都需要一个参数nonce。官方文档对此参数的解释是:整数类型,...转载 2018-10-01 18:28:57 · 40749 阅读 · 0 评论 -
nano钱包 安卓版源码解读
1:生成钱包种子public static String generateSeed() { int numchars = 64; SecureRandom random = SecureRandomUtil.secureRandom(); byte[] randomBytes = new byte[numchars / 2]; random.nextBytes...原创 2018-09-30 23:35:44 · 468 阅读 · 1 评论 -
在centos7上搭建以太坊私有链
先总体说一下步骤:1.操作系统准备2. golang安装3.下载以太坊4. 安装以太坊5. 创世区块文件的准备6. 创世区块初始化7. 以太坊启动一 操作系统准备首先确认下linux版本(本人做测试时用的CentOS7.5)命令:cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) ...原创 2018-09-10 21:42:28 · 1184 阅读 · 1 评论 -
centos7安装supervisord管理geth进程
1:安装supervisoryum install epel-releaseyum install -y supervisorsupervisor没有发布在标准的CentOS源在,需要安装epel源。这种方式安装的可能不是最新版本,但比较方便,安装完成之后,配置文件会自动帮你生成。并且会自动加入到系统服务里面 可以随系统启动而启动 对应的执行文件放到:/usr/bin里面了默认...原创 2018-09-06 19:55:10 · 1044 阅读 · 0 评论 -
java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion
在使用android-json-rpc的时候报java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion错误,在AndroidManifest.xml文件的application标签里面加入<uses-library android:name="org.apache.http.le...原创 2018-07-13 15:31:58 · 18731 阅读 · 2 评论 -
搭建以太坊私有链并两台电脑间节点连接
1:新建文件夹private2:在改目录下新建文件genesis.json文件内容如下:{ "config": { "chainId": 10, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc" : {},原创 2018-07-13 11:36:51 · 3436 阅读 · 1 评论 -
windows安装go-ethereum
从https://geth.ethereum.org/downloads/.上下载exe文件进行安装,安装网址后就会自动在Path环境变量中加入geth的安装路径,然后就可以在控制台中使用geth了原创 2018-07-05 17:11:49 · 1237 阅读 · 0 评论 -
区块链结构
区块链包括网络层、共识层、智能合约和应用层,联盟链还包括权限管理机制原创 2018-06-25 21:56:29 · 362 阅读 · 0 评论 -
区块链分类
区块链可以从几个方面分类根据参与者的不同,可以分为如下三类:公有链:顾名思义,任何人都可以参与使用和维护,如比特币区块链,信息是完全公开的;私有链:由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开; 联盟链:介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟 根据使用目的和场景的不同,又可以分为以数字货币为...原创 2018-06-25 21:55:19 · 1141 阅读 · 0 评论 -
pow共识机制理解
比特币基于算力寻找nonce串的共识机制成为工作量证明机制POW原创 2018-06-25 21:46:11 · 1288 阅读 · 0 评论 -
加解密算法
从设计理念上分为对称加密和非对称加密对称加密分类 密钥数优点缺点常见算法 对称加密加解密的密钥相同计算效率高加密强度高需提前共享密钥,易泄露DES、3DES、AES、IDEA 非对称加密加解密的密钥不相关无需提前共享密钥计算效率低,仍存在中间人攻击可能RSA、EIGamal、椭圆曲线系列算法 非对称加密:加密密钥和解密密钥是不同的,分别称为公钥( public key)和私钥( pr...原创 2018-06-26 09:09:11 · 327 阅读 · 0 评论 -
区块结构
比特币区块链的一个区块主要包括如下内容:4 字节的区块大小信息;80 字节的区块头信息;交易个数计数器: 1 ~ 9 字节;所有交易的具体内容,可变长 。其中,区块头信息十分重要,包括:版本号: 4 字节;上一个区块头的SHA256 Hash 值:链接到一个合法的块上, 口包含所有验证过的交易的Merkle 树根的哈希值,32 字节;时间戳: 4 字节;难度指标: 4 字节; Nonce: 4字...原创 2018-06-26 08:52:06 · 257 阅读 · 0 评论 -
使用truffle遇到的问题
1:执行truffle migrate命令遇到如下错误导致上面异常的原因为是因为truffle.js里面未配置链接合约发布的环境地址,找到对应的truffle.js文件,修改代码为类似如下配置即可解决问题:2:继续执行truffle migrate又遇到如下错误:Could not connect to your Ethereum client. Please check that your Et...原创 2018-06-10 15:31:19 · 3453 阅读 · 3 评论 -
以太坊学习过程遇到问题
1:ps -ef | grep geth运行结果如下通过这一条命令可以查看到电脑上有多少个geth进程在同时运行2:geth attach ipc:/Users/guanhongchang/Library/Ethereum/geth.ipc运行结果如下这样我们在不停止节点不重启节点的情况下就可以进入console进行相应的命令操作以太坊钱包中选择的网络要是Solo network类型才可以和控制台...原创 2018-06-09 21:17:23 · 285 阅读 · 0 评论 -
通过keythereum库来获取以太坊用户的Private Key的HEX值
1:首先安装keythereumnpm install keythereum2:实现代码大致如下:var keythereum = require("keythereum"); var datadir = "/Users/guanhongchang/testNet"; //data存放的地址路径var address= "0x886aeec3425061ee24928f5b0f3745d0519...原创 2018-06-13 12:04:29 · 2269 阅读 · 1 评论 -
通过web3.min.js这个实例来设置HttpProvider时候出现跨域问题
1:在html中的其他js代码里面设置HttpProvider会出现如下错误Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 这是因为原来geth节点启动的命令是 ...原创 2018-06-12 22:25:09 · 3260 阅读 · 0 评论 -
g++: internal compiler error: Killed (program cc1plus)
在编译bitcoin源码的时候总是中断发生如下错误: g++: internal compiler error: Killed (program cc1plus)发生这个错误的原因是虚拟机内存不足。给虚拟机增大内存就解决了...原创 2018-05-29 16:31:34 · 727 阅读 · 0 评论 -
qt/moc_optionsdialog.cpp:129:1: error: initializer-string for array of chars is too long
修改bitcoin成自己的币,将对应的bitcoin相关的词换成了自己要改的出现了如下错误:qt/moc_optionsdialog.cpp:129:1: error: initializer-string for array of chars is too long [-fpermissive] }; ^Makefile:7641: recipe for target 'qt/qt_libhon...原创 2018-05-29 16:27:43 · 2660 阅读 · 0 评论 -
POW和PBFS允许的容错率
PoW 等基于概率的系列算法理论上允许少于一半的不合作节点, PBFT 等确定性算法理论上则允许不超过 1/3 的不合作节点原创 2018-06-25 22:10:17 · 825 阅读 · 0 评论 -
什么是非拜占庭错误?什么是拜占庭错误?
一般地,把出现故障( crash 或 fail-stop,即不响应)但不会伪造信息的情况称为“非拜 占庭错误”( non-byzantine fault)或“故障错误”( Crash Fault);伪造信息恶意响应的情况称为“拜占庭错误”( Byzantine Fault),对应节点为拜占庭节点...原创 2018-06-25 22:11:20 · 11216 阅读 · 0 评论 -
paxos执行过程
Paxes 里面对这两个阶段分别命名为准备( Prepare)阶段和提交( Commit)阶段。 准备阶段通过锁来解决对哪个提案内容进行确认的问题,提交阶段解决大多数确认最终值的问题。准备阶段:口 提案者发送自己计划提交的提案的编号到多个接收者,试探是否可以锁定多数接收 者的支持;口 接受者时刻保留收到过提案的最大编号和接受的最大提案 。 如果收到提案号比目前 保留的最大提案号还大,则返回自己已接...原创 2018-06-25 22:23:13 · 386 阅读 · 0 评论 -
在ubuntu虚拟机上安装go-ethereum
安装方式有两种:1:从PPA中安装主要是执行4条命令就可以了,这个比较简单sudo apt-get install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereum2:从源代码中编译得到因为go-e...原创 2018-07-11 11:44:40 · 635 阅读 · 0 评论 -
java接入web3j来和以太坊打交道
1:启动节点geth --identity "xiaohong" --rpc --rpccorsdomain "*" --rpcaddr "192.168.1.105" --datadir "./" --port "30303" --nodiscover --rpcapi "personal,db,eth,net,web3,miner" --networkid 1999 conso原创 2018-07-16 17:19:00 · 4073 阅读 · 4 评论