直接把base:去掉这个是go 不同版本的调用方式
是不是用的%x打印?
go工程用go mod管理一下吧,go mod ***,然后go mod tidy,如果有必要再看下GOBIN在哪,不行再export GOBIN一下
因为生成hash值的原值不同, 所以hash值也不一样
比如两次运行时timestamp就不一样
所以 Genesisblock不同, 之后所有的值都不同
请问你是不是在最后输出的时候 Printf("Data: %x\n")
应该是 Printf("Data: %s\n")
....输出的问题,%x
Block{}建立一个Block类型的对象
需要传指针的话就用&把这个Block对象的地址拿到
如果我们要写一个交换两个整数的函数: func swap(a int, b int) { t := a a = b b = t } func main() { a := 1 b := 2 fmt.Println(a, b) swap(a, b) fmt.Println(a, b) } 程序运行之后,你会发现a和b根本没有交换,因为传递给swap函数的只是值,相当于对a和b的副本进行了交换; 而如果用指针来实现: func swap(a *int, b *int) { t := *a *a = *b *b = t } func main() { a := 1 b := 2 fmt.Println(a, b) swap(&a, &b) fmt.Println(a, b) } 结果才是我们想要的。
因为要对传递给函数的变量进行修改,所以要用指针。
配置一下項目的gopath,把上面global的去掉,保存一下就可以了
跑字符串相当于工作量证明,新区快的hash值必须要保证符合条件 ,看例子就是算出来的hash值前5位必须为0才能参加共识,大家才认可,而比特币现在大概需要18个0吧,好多计算机一起挖的话才能挖出来一个