自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1594

原创 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 1251

原创 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 1610

原创 读取本地文件到读出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 831

原创 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 909

原创 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 1949

原创 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 1293

原创 修改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 1456

转载 以太坊源码分析-以太坊启动

以太坊源码分析-开篇13年时第一次知道比特币的存在,那时仅仅是跟风炒币而已,没有具体去了解相关的技术细节。前不久无意中有人提到「比特币在没有大维护的情况下完美运行8年了」,瞬间惊呆了,于是乎开始了解区块链的相关知识。在区块链中,我选择以太坊作为切入点,分析以太坊的相关底层技术细节实现。由于初学不久,分析不对的地方烦请指出。以太坊开发环境搭建安装Go环境,请自行Google从gith

2018-01-25 11:30:40 13796 2

原创 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 814

原创 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 1377 1

原创 修改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 873

转载 以太坊源码(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 2360

转载 以太坊源码(05):网络服务分析

http://mp.weixin.qq.com/s/yJAwLYbrD9AHLqmlZvy_WA目录 1 网络分层 ............................................................................................42 会话层................................

2018-01-10 09:15:35 1265

转载 以太坊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 5149

转载 ethereum p2p源码模块的分析

转http://www.cnblogs.com/baizx/p/6957772.htmlp2p模块p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输.Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不

2017-12-28 10:48:11 3739 1

转载 以太坊源码P2P网络及节点发现机制

核心数据结构:NodeTable类负责以太坊的节点发现,NodeTable采用kademlia(KAD)算法进行节点发现NodeTable维护一个网络节点列表,此列表为当前可用节点,供上层使用由于NodeID经过sha3生成出的Hash为256位。列表有256-1=255项,其中-1是因为刨除了当前节点(本机)列表的每一项位一个节点桶(NodeBucket),每个桶中最多放16个节

2017-12-28 10:45:36 5001

原创 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 2253

转载 VMware的快照和克隆总结

多重快照功能简介:  快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。当你需要重复的返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能。其实,快照并不是VMware Workstation 5的新功能。早在VMware Workstation 4的时代,就已经支持快照功能了。但是VMware Workstation 4只能生成一个快照,也

2017-12-27 09:58:00 4755

转载 golang RWMutex读写锁分析

RWMutex:是基于Mutex实现的读写互斥锁,一个goroutine可以持有多个读锁或者一个写锁,同一时刻只能持有读锁或者写锁数据结构设计:type RWMutex struct { w Mutex // 互斥锁 writerSem uint32 // 写锁信号量 readerSem uint32 // 读锁信号量

2017-12-26 13:54:48 878

原创 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 884

转载 在eclipse中配置Go开发环境

转载:https://www.jianshu.com/p/48025776632c在第一节中,小伙伴们已经学会了安装Go语言的SDK和如何在eclipse中安装对go语言的支持插件,细心的小伙伴会发现,写代码特别累。肿么可以没有代码自动补全功能?好,别着急,现在我们一起来研究。让代码写的飞起来,让Go语言变得好玩起来。一、我们要做什么我们要将要安装Go模块下的tools三个小插件,顺带

2017-12-23 19:50:53 1433

原创 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 1007

原创 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 1174

原创 源码安装以太坊/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 888

原创 制作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 662

转载 UPnP的介绍和理解

在远程服务器开了一个节点B,然后在自己电脑上启动两个节点A,C,用了--bootnodes B命令,A和C都能把B节点添加到自己的列表里,但是A和C不能互相发现是为什么?按理来说B应该把自己知道的节点列表都告诉给他相连的节点吧答案是:它们会自动查找满足upnp协议能链接到的节点啊 所以现在学习一下upnp前言做android智能硬件开发一年,蓝牙接触多的就是spp模拟串

2017-12-14 11:04:44 9215

转载 [以太坊源代码分析] VI. 基于p2p的底层通信(上篇)

以太坊作为一个去中心化的系统,其底层个体相互间的通信显然非常重要,所有数据的同步,各个个体状态的更新,都依赖于整个网络中每个个体相互间的通信机制。以太坊的网络通信基于peer-to-peer(p2p)通信协议,又根据自身传输数据类型(区块,交易,哈希值等),网络节点业务相关性等需求,在各方面做了特别设计。由于以太坊中p2p通信相关代码量较大,打算分为上下两篇文章来加以详解:上篇主要介绍管理

2017-12-11 16:24:44 6291 2

转载 [以太坊源代码分析] II. 数据的呈现和组织,缓存和更新

在Ethereum的世界里,数据的最终存储形式是[k,v]键值对,目前使用的[k,v]型底层数据库是LevelDB;所有与交易,操作相关的数据,其呈现的集合形式是Block(Header);如果以Block为单位链接起来,则构成更大粒度的BlockChain(HeaderChain);若以Block作切割,那么Transaction和Contract就是更小的粒度;所有交易或操作的结果,将以各个个

2017-12-11 15:16:28 4821 2

原创 ubuntu启动ssh

对ubuntu的权限问题一直模模糊糊,比如很多时候明明已经sudo 可是还是提示你权限不够,su也不成功,原来是因为没启动sshflq1@ubuntu:~$ suPassword: su: Authentication failuresudo apt-get install openssh-serverUbuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安

2017-12-07 20:34:30 418

原创 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 474

转载 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 1767

转载 使用开源my-deploy工具实现开发环境的代码自动化部署

@编者按:  由于公司内部存在的开发系统:内网开发–外网预发布–外网生产环境,程序员频繁的更新代码造成运维人员大量时间被占用,于是有了使用该开源工具的部署测试环节。在这里感谢该开源工具的作者,也希望我这边文档能多少帮助需要类似开发环境的技术人员。1.部署:  开源项目地址:https://github.com/kelvv/my-deploy   操作视频教程:http://v.youku.com/v

2017-12-07 14:32:49 1364

原创 一秒解决虚拟机与主机之间粘贴复制

很多帖子都不知道写的是什么东西。 关闭虚拟机。虚拟机设置,选项,物理机隔离,把复制粘贴选上就ok

2017-12-07 14:05:36 57976 18

原创 以太坊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 4073

原创 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 2925

原创 杀死“比尔”

所有人有一个初始的生命值,一个警官要杀一个人则该人的生命值减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 536

原创 剑指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 546

原创 寻找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 1723

原创 剑指offer1 二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /* 思路 * 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, * 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 * 要查找数字比左下角数字小时,上移 *//*这个代码写的是从右上角开始查找*/

2017-09-17 09:40:19 344

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除