在goland实现p2p区块链,如何安装设置调用库的问题

img

不知道各位有没有见过这篇外文

https://medium.com/@mycoralhealth/code-a-simple-p2p-blockchain-in-go-46662601f417

(要开代理才能看到)题目为Code a simple P2P blockchain in Go!

在csdn上孙飞Sunface也提供了译文版

https://blog.csdn.net/erlib/article/details/79953019

关于这个安装设置,我使用的是goland,路径为PS C:\Users\86183\GolandProjects\P2pBlockchain>

也就是我在GolandProjects中创建了文件夹P2pBlockchain,

img

之后在goland打开P2pBlockchain,

img

在终端进行go mod init P2pBlockchain

img

之后按照教程进行了go get -d github.com/libp2p/go-libp2p/
added很成功,go.mod也出现了对应内容

img

但是之后的导航至go-libp2p文件夹是什么意思,怎么进去呢?我这里只有一个变化的go.mod啊
按照教程说用到gx,可是我gx也下载了,可是好像用不了,查看version看不了
现在又试了一下,似乎都下载不了了?(卡了好久不动,不知道是不是代理慢)

img

对于之后的make 和make deps我其实也不懂,但是如今卡在进文件夹(悲)

其实我也尝试过clone整个libp2p的库

img

img

也在它的examples目录里创建了p2p

img

之后是main.go

img

结果就是说这些包无法解析,理论上这些包是这个复制的库里的,却不能用·

不是很懂
(其实笔者也就是一位无名大一生,搬运代码并看看运行,没曾想运行不了,真是一大悲事)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    对等连接工作方式(P2P方式)是一种分布式网络架构,其中每个参与者都可以充当客户端和服务器。在P2P区块链中,参与者可以共享和传输区块链的数据,以实现去中心化的共识和数据验证。

    根据您的描述,您在尝试使用goland实现一个P2P区块链,并遇到了一些安装设置和调用库的问题。下面我将一步一步指导您如何解决这些问题。

    1. 首先,确保您已经正确安装了goland和Go语言环境。您可以在goland的官方网站上下载和安装goland,并在Go官方网站上下载和安装Go语言环境。

    2. 打开goland,并创建一个新项目。在创建项目时,选择一个适当的路径,并将其命名为P2pBlockchain。

    3. 在项目的根目录下打开终端。如果您在goland中打开了项目,则可以直接在goland的终端选项卡中使用终端。

    4. 在终端中运行以下命令,以初始化go.mod文件并进行设置:

    go mod init P2pBlockchain
    

    这将创建一个名为go.mod的文件,该文件用于管理项目的依赖关系和包。

    1. 使用以下命令安装所需的go-libp2p包:
    go get -d github.com/libp2p/go-libp2p
    

    此命令将自动下载并安装go-libp2p包及其所有依赖项。成功执行后,go.mod文件中将显示相关内容。

    1. 进入go-libp2p文件夹。根据您的描述,导航至go-libp2p文件夹可能是因为需要在该文件夹中执行其他命令或查看其内容。在终端中使用cd命令导航至该文件夹:
    cd $GOPATH/pkg/mod/github.com/libp2p/go-libp2p
    
    1. 您提到使用gx工具时遇到了问题。gx是一个用于管理Go语言包的工具,但我建议您使用go mod来管理包和依赖项。因此,您无需继续使用gx工具。

    2. 您尝试通过克隆整个libp2p库并创建一个名为p2p的文件夹来解决问题。这个方法是正确的,但您需要确保已经正确克隆了库。您可以在终端中使用以下命令来克隆整个libp2p库:

    git clone https://github.com/libp2p/go-libp2p
    

    然后,进入克隆的库目录并创建p2p文件夹:

    cd go-libp2p/examples
    mkdir p2p
    cd p2p
    

    在p2p文件夹中创建main.go文件,并在其中编写您的代码。

    1. 在您的代码中,您需要导入所需的包。在main.go文件中,添加以下导入语句:
    package main
    
    import (
        "context"
        "fmt"
        "github.com/libp2p/go-libp2p"
        // 导入其他所需的包
    )
    
    func main() {
        // 添加代码来运行您的P2P区块链
    }
    
    1. 关于"make"和"make deps"命令,这些命令是用于构建和管理go-libp2p库及其依赖项的工具。但在您的情况下,并不需要使用这些命令,因为您只是尝试运行您的P2P区块链项目。

    综上所述,根据您描述的情况,这些步骤应该可以帮助您解决在goland中实现P2P区块链时遇到的安装设置和调用库的问题。如果您遇到任何其他问题或需要进一步的帮助,请随时向我提问。祝您好运!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^