- 博客(199)
- 收藏
- 关注
原创 注册页面
package Client;//看到背景图后不能看到jlabel的标签import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.aw...
2018-03-28 14:39:46
1682
原创 go的配置文件
go湖南老乡 2018/2/5 17:55:54package mainimport ( "github.com/kylelemons/go-gypsy/yaml " "fmt")type ( // reply to findnode neighbors struct { Expiration uint64 confbh int // Ignore add
2018-02-05 19:10:32
1338
原创 go 追加日志功能
package mainimport ( "log" "os")func main(){ f, err := os.OpenFile("bbb.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil{ log.Fatalln("HHHHH") } debugLog :
2018-02-05 10:02:21
1692
原创 读取本地文件到读出p.node涉及的函数
这里是读取本地文件的所调用的函数func ParseNode(rawurlstring) (*Node, error) { if m := incompleteNodeURL.FindStringSubmatch(rawurl); m !=nil { id, err :=HexID(m[1]) if err != n
2018-02-01 14:52:57
1380
原创 go语言基础知识点
1 fmt.Println("reflect p1",reflect.TypeOf(p1))是判断某个变量的类型2 对于一个nodeid类型的转换为string,先把他的数组拿出来再转换[:]p2 := string(discover.MNode[0][j].ID[:])3 字符串去空格 p1 = strings.Replace(p1, " ", "", -1)
2018-01-31 16:31:35
973
原创 go语言打印当前应用的执行路径
在项目的main函数里面增加代码。就可以读出当前程序的目录啦// execPath returns the executable path.func execPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return "", err } return filepath
2018-01-26 14:01:57
2036
原创 WTC
bootnode 1 修改core/types/block.go中Header的结构体。加上Signature []byte `json:"signature" gencodec:"required"`2 在p2p/discover/udp.go中修改"os" "github.com/ethereum/go-ethereum/commo
2018-01-26 09:13:32
1541
原创 修改bootnode
bootnode 1 修改core/types/block.go中Header的结构体。加上Signature []byte `json:"signature" gencodec:"required"`2 在p2p/discover/udp.go中修改"os" "github.com/ethereum/go-ethereum/common"
2018-01-25 20:31:32
1702
转载 以太坊源码分析-以太坊启动
以太坊源码分析-开篇13年时第一次知道比特币的存在,那时仅仅是跟风炒币而已,没有具体去了解相关的技术细节。前不久无意中有人提到「比特币在没有大维护的情况下完美运行8年了」,瞬间惊呆了,于是乎开始了解区块链的相关知识。在区块链中,我选择以太坊作为切入点,分析以太坊的相关底层技术细节实现。由于初学不久,分析不对的地方烦请指出。以太坊开发环境搭建安装Go环境,请自行Google从gith
2018-01-25 11:30:40
13963
原创 masternode对挖到区块签名
在concensus/ethash/sealer.go中修改import ( crand "crypto/rand" "math" "math/big" "math/rand" "runtime" "sync" "crypto/ecdsa" "fmt" //"io/ioutil" //"os" //"path/filepath" "github.com/ethereum
2018-01-22 11:09:08
863
原创 concensus.go sealer.go源码
在eth/concensus.go中主要是验证区块头,调整挖矿难度的算法,以及验证挖到的区块是否正确等等功能。还有前期准备,计算奖励等// VerifySeal implements consensus.Engine, checking whether the given block satisfies// the PoW difficulty requirements.func (eth
2018-01-16 09:11:56
1581
原创 修改bootnode的功能
func (req *findnode) handle(t *udp, from *net.UDPAddr, fromID NodeID, mac []byte) error { if expired(req.Expiration) { return errExpired } if t.db.node(fromID) == nil { // No bond exists, we do
2018-01-15 18:48:44
940
转载 以太坊源码(01):P2P网络及节点发现机制
http://mp.weixin.qq.com/s/_hNFvgOdBp1Z8ecWc6X8rg目录1 分布式网络介绍1.1 Kad网介绍1.2 Kad网络节点距离1.3 K桶1.4 Kad通信协议2 邻居节点2.1 NodeTable类主要成员2.2 邻居节点发现方法2.3 邻居节点网络拓扑及刷新机制。
2018-01-10 09:17:33
2479
转载 以太坊源码(05):网络服务分析
http://mp.weixin.qq.com/s/yJAwLYbrD9AHLqmlZvy_WA目录 1 网络分层 ............................................................................................42 会话层................................
2018-01-10 09:15:35
1323
转载 以太坊bootnode测试
环境准备本测试环境在单机上完成,通过不同端口号来区分节点。使用go的客户端geth,版本是Version: 1.6.7-unstable。源码地址: https://github.com/ethereum/go-ethereum 。geth和bootnode的编译自行完成。工作目录结构如下:➜ ethereum tree -L 2.├── bootnode.ke
2017-12-28 19:13:49
5276
转载 ethereum p2p源码模块的分析
转http://www.cnblogs.com/baizx/p/6957772.htmlp2p模块p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输.Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不
2017-12-28 10:48:11
3803
转载 以太坊源码P2P网络及节点发现机制
核心数据结构:NodeTable类负责以太坊的节点发现,NodeTable采用kademlia(KAD)算法进行节点发现NodeTable维护一个网络节点列表,此列表为当前可用节点,供上层使用由于NodeID经过sha3生成出的Hash为256位。列表有256-1=255项,其中-1是因为刨除了当前节点(本机)列表的每一项位一个节点桶(NodeBucket),每个桶中最多放16个节
2017-12-28 10:45:36
5087
原创 bootnode建立连接的过程
1、节点A向boot发送ping2、boot向A发送pong3、boot向A发送ping,A返回pong(互相ping一下确保对方活着)4、A向boot发送findnode请求5、boot向A发送neighbors信号
2017-12-27 14:39:24
2352
转载 VMware的快照和克隆总结
多重快照功能简介: 快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。当你需要重复的返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能。其实,快照并不是VMware Workstation 5的新功能。早在VMware Workstation 4的时代,就已经支持快照功能了。但是VMware Workstation 4只能生成一个快照,也
2017-12-27 09:58:00
4827
转载 golang RWMutex读写锁分析
RWMutex:是基于Mutex实现的读写互斥锁,一个goroutine可以持有多个读锁或者一个写锁,同一时刻只能持有读锁或者写锁数据结构设计:type RWMutex struct { w Mutex // 互斥锁 writerSem uint32 // 写锁信号量 readerSem uint32 // 读锁信号量
2017-12-26 13:54:48
928
原创 go语言的常见函数
1 make函数 创建数组切片Go语言提供的内置函数make()可以用于灵活地创建数组切片。创建一个初始元素个数为5的数组切片,元素初始值为0: mySlice1 := make([]int, 5) 创建一个初始元素个数为5的数组切片,元素初始值为0,并预留10个元素的存储空间: mySlice2 := make([]int, 5, 10) 2 defer语句
2017-12-25 10:42:15
970
转载 在eclipse中配置Go开发环境
转载:https://www.jianshu.com/p/48025776632c在第一节中,小伙伴们已经学会了安装Go语言的SDK和如何在eclipse中安装对go语言的支持插件,细心的小伙伴会发现,写代码特别累。肿么可以没有代码自动补全功能?好,别着急,现在我们一起来研究。让代码写的飞起来,让Go语言变得好玩起来。一、我们要做什么我们要将要安装Go模块下的tools三个小插件,顺带
2017-12-23 19:50:53
1478
原创 windows下用eclipse+goclipse插件
1、在官网下载jdk。目前最新版本为jdk8。http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。根据自己系统的版本选择,对应的jdk文件,注意一定要选择正确的文件。设置环境变量 此电脑,右键,选择属性,选择高级系统设置。 创建JAVA_HOME变量,变量值是java的安装位置,我
2017-12-22 09:39:28
1086
原创 ubuntu安装teamviewer
1、在终端中执行如下命令进行安装wget http://download.teamviewer.com/download/teamviewer_i386.deb或者sudo dpkg -i teamviewer_12.0.71510_i386.deb或者sudo dpkg -i teamviewer_i386.deb2、使用如下命令处理依赖问题sudo apt-get install –f
2017-12-21 11:45:52
1250
原创 源码安装以太坊/wtc
1 安装go 先更新一下 sudo apt-get update sudo apt-get -y upgrade下载源码https://www.golangtc.com/download 并解压sudo tar -xvf go1.9.2.linux-amd64.tar.gzsudo mv go /usr/local设置路径vi /etc/profileexport PATH=$PATH:/us
2017-12-19 18:07:08
954
原创 制作geth 的镜像
1 写Dockerfilemkdir blccd blcvim DockerfileFROM ubuntu:16.04RUN apt-get update \ && apt-get install software-properties-common -y \ && add-apt-repository -y ppa:ethereum/ethereum \ &&
2017-12-14 17:27:59
731
转载 UPnP的介绍和理解
在远程服务器开了一个节点B,然后在自己电脑上启动两个节点A,C,用了--bootnodes B命令,A和C都能把B节点添加到自己的列表里,但是A和C不能互相发现是为什么?按理来说B应该把自己知道的节点列表都告诉给他相连的节点吧答案是:它们会自动查找满足upnp协议能链接到的节点啊 所以现在学习一下upnp前言做android智能硬件开发一年,蓝牙接触多的就是spp模拟串
2017-12-14 11:04:44
9451
转载 [以太坊源代码分析] VI. 基于p2p的底层通信(上篇)
以太坊作为一个去中心化的系统,其底层个体相互间的通信显然非常重要,所有数据的同步,各个个体状态的更新,都依赖于整个网络中每个个体相互间的通信机制。以太坊的网络通信基于peer-to-peer(p2p)通信协议,又根据自身传输数据类型(区块,交易,哈希值等),网络节点业务相关性等需求,在各方面做了特别设计。由于以太坊中p2p通信相关代码量较大,打算分为上下两篇文章来加以详解:上篇主要介绍管理
2017-12-11 16:24:44
6395
1
转载 [以太坊源代码分析] II. 数据的呈现和组织,缓存和更新
在Ethereum的世界里,数据的最终存储形式是[k,v]键值对,目前使用的[k,v]型底层数据库是LevelDB;所有与交易,操作相关的数据,其呈现的集合形式是Block(Header);如果以Block为单位链接起来,则构成更大粒度的BlockChain(HeaderChain);若以Block作切割,那么Transaction和Contract就是更小的粒度;所有交易或操作的结果,将以各个个
2017-12-11 15:16:28
4959
原创 ubuntu启动ssh
对ubuntu的权限问题一直模模糊糊,比如很多时候明明已经sudo 可是还是提示你权限不够,su也不成功,原来是因为没启动sshflq1@ubuntu:~$ suPassword: su: Authentication failuresudo apt-get install openssh-serverUbuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安
2017-12-07 20:34:30
487
原创 ubuntu安装nodejs
1 node源码下载https://nodejs.org/dist/v8.9.2/node-v8.9.2-linux-x64.tar.xz2 所有的操作都需要超级权限,所以解压语句为cd /home/flq1/Downloads && sudo tar xf node-v8.9.2-linux-x64.tar.xz -C /usr/local/执行完上面的命令程序安装路径在 /usr/local/n
2017-12-07 19:51:14
560
转载 Ubuntu 下安装Node.JS的不同方式
如果你要在Ubuntu 15.04上安装Node.js的话,这篇教程对你来说肯定很重要。Node.js从本质上来说就是一个运行在服务端上的封装好了输入输出流的javascript程序。Node.js巧妙的使用单线程的事件循环来处理高吞吐量和非阻塞IO。同时它也是一个提供了通过操作系统读写文件和网络操作功能的平台层。所以这篇文章将展示在Ubuntu 15.04 server上不同的安装Node.
2017-12-07 16:08:07
1832
转载 使用开源my-deploy工具实现开发环境的代码自动化部署
@编者按: 由于公司内部存在的开发系统:内网开发–外网预发布–外网生产环境,程序员频繁的更新代码造成运维人员大量时间被占用,于是有了使用该开源工具的部署测试环节。在这里感谢该开源工具的作者,也希望我这边文档能多少帮助需要类似开发环境的技术人员。1.部署: 开源项目地址:https://github.com/kelvv/my-deploy 操作视频教程:http://v.youku.com/v
2017-12-07 14:32:49
1465
原创 以太坊bootNode
种子节点bootnodeStripped down version of our Ethereum client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It c
2017-12-06 16:42:02
4169
原创 geth1.7搭建多节点私有链
geth客户端的安装sudo apt-get install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereum创建私有链创建一个初始块vim genesis.json{"nonce": "0x0
2017-11-30 11:42:47
3002
原创 杀死“比尔”
所有人有一个初始的生命值,一个警官要杀一个人则该人的生命值减p,其他人则减Q,最少要杀多少次才可以把所有人杀掉。百度笔试手速太慢。没敲上去,可怜,#include<iostream>using namespace std;void getMax(int a[],int n){ for(int i=0;i<n-1;i++){ if(a[i]>a[i+1]){
2017-09-19 22:07:25
602
原创 剑指offer 2 替换空字符串
替换空字符串为20% 先遍历一遍知道空格数目,然后从后向前开始复制class Solution {public: void replaceSpace(char *str,int length) { int spaceNum=0; for(int i=0;i<length;i++) { if(str[i]==' ')
2017-09-19 21:53:47
589
原创 寻找k个数组的最小区间
有k个有序的数组,请找到一个最小的数字范围。使得这k个有序数组中,每个数组都至少有一个数字在该范围中。 例如:1: 4, 10, 15, 24, 262: 0, 9, 12, 203: 5, 18, 22, 30所得最小范围为[20,24],其中,20在2中,22在3中,24在1中。通过归并排序的思想,确保每次都是k个来自不同的数组的元素进行比较,得到最大值、最小值。就可以得到一个范围,包含了所有
2017-09-17 15:31:01
1816
原创 剑指offer1 二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /* 思路 * 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, * 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 * 要查找数字比左下角数字小时,上移 *//*这个代码写的是从右上角开始查找*/
2017-09-17 09:40:19
381
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人