以太坊 - 如何使用 .NET (Nethereum) 连接到以太坊

  • QuickNode
  • 发布于 2024-09-05 13:39
  • 阅读 19

本文介绍了如何使用 .NET 和 Nethereum 库连接以太坊网络,详细说明了 .NET 的基础知识、C 编程语言的特性,以及 Nethereum 的功能特点。同时提供了安装和配置 Nethereum 的步骤,并附上了示例代码。最后,作者鼓励开发者利用所学知识构建去中心化应用。

概述

Dotnet或.NET在桌面应用程序开发中非常流行,绝大多数Windows桌面应用程序都是使用.NET构建的,它也在Web应用程序的技术栈中占据重要地位。在本指南中,让我们看看如何使用.NET和Nethereum连接到以太坊。

先决条件

  • 你的系统上安装了.NET Core SDK 3.1。

  • 文本编辑器。

  • 以太坊节点。

什么是.NET?

.NET是微软对Java的替代方案。 .NET是一个可用于使用Visual Basic、C#和F#开发应用程序的综合框架。它是开源的,具有出色的跨平台支持;它由微软创建,主要用于制作Windows应用程序,但现在由于支持多种编程语言,基于Web和基于表单的应用程序都可以使用.NET以及其中的ASP.NET工具进行开发,你可以为Web应用程序构建后端。

以下是.NET框架的一些特性:

  • 公共语言运行时引擎(CLR)

  • 互操作性

  • 可移植性

  • 基类库

  • 简化部署

  • 语言独立性

  • 安全性

为了满足我们今天的需求,我们将使用C#和Nethereum

什么是C#(C-Sharp)?

C#是一种现代的面向对象编程语言;它在微软管理的.NET基金会下开源,社区成员积极参与其中。C#广泛用于桌面和游戏开发,同时也可以用于移动开发、虚拟现实、区块链开发等。C#源于C,与Java和C++密切相关。它易于学习,是世界上最受欢迎的编程语言之一,拥有强大的社区支持。

以下是C#的一些显著特性:

  • C#代码在执行时生成可移植的可执行文件,如.exe和.dll

  • C#中的方法默认不是虚拟的。

  • 类被分组到命名空间中。

  • C#命名空间与目录无关。

  • 在C#中,原始数据类型变量很强大。

  • 具有属性和索引器等特性。

  • 支持结构、预处理指令和操作符重载。

  • 作为.NET语言,支持语言互操作性。

什么是Nethereum?

Nethereum是以太坊的.NET集成库;它简化了与以太坊节点的访问和智能合约交互。它兼容所有主要操作系统,并在移动设备、桌面、云、Xbox、hololens和Windows IoT上进行了测试。Nethereum非常适合Web3开发。

以下是Nethereum的一些显著特性:

  • 支持核心以太坊JSON RPC / IPC方法。

  • 简化智能合约交互。

  • Unity 3d集成。

  • 支持HD钱包

  • 具有标准合约Token、ENSUport的库。

  • 简单的账户生命周期。

  • 有ABI到.NET类型的编码和解码功能。

我们将使用Nethereum web3包从以太坊区块链获取最新的区块号。

安装Nethereum

Nethereum需要安装.NET Core或.NET框架(4.5.1+)。我们将安装.NET Core SDK以使Nethereum正常工作。根据你的操作系统下载并安装下载.NET Core SDK ver 3.1。然后转到你的终端/命令行,并键入以下内容。

$ dotnet new console -o nethereumapp

这将在当前目录中创建一个新的.NET应用程序。你可以为你的应用程序提供任何名称(在本例中为nethereumapp)。

现在进入你的应用程序目录。

$ cd nethereumapp

添加对Nethereum.Web3的包引用。

$ dotnet add package Nethereum.Web3

这可能需要一段时间。添加包引用后,通过输入以下内容下载/更新包。

$ dotnet restore

如果一切顺利,Nethereum将与nethereum web3包一起添加到你的系统中。

设置你的QuickNode以太坊端点

我们可以使用任何以太坊客户端,例如Geth或OpenEthereum(以前称为Parity),来满足我们今天的需求。因为仅仅查询区块高度涉及的内容太多,我们将在这里创建一个免费的QuickNode账户,并轻松生成一个以太坊端点。它可以是测试网(如Sepolia或Goerli)或主网。在你创建了免费的以太坊端点后,复制你的HTTP提供程序端点:

Quicknode以太坊端点的截图

你稍后需要这个,因此请复制并保存它。

连接以太坊

现在转到你的.NET应用程序文件夹,在文本编辑器中打开Program.cs C#文件,并根据以下代码编辑代码。

using System;
using System.Threading.Tasks;
using Nethereum.Web3;

namespace nethereumapp
{
    class Program
    {
        static void Main(string[] args)
        {
            GetBlockNumber().Wait();
        }

        static async Task GetBlockNumber()
        {
            var web3 = new Web3("ADD_YOUR_ETHEREUM_NODE_URL");
            var latestBlockNumber = await web3.Eth.Blocks.GetBlockNumber.SendRequestAsync();
            Console.WriteLine($"最新区块号为: {latestBlockNumber}");
        }
    }
}

确保将 **ADD_YOUR_ETHEREUM_NODE_URL** 替换为上面部分的HTTP提供程序。

上述代码的解释:

第1-3行:添加所需的命名空间。

第5行:声明我们应用程序的命名空间(将包含类集合)。

第7行:声明一个名为Program的类。

第9-12行:声明Main类,这是C#程序的入口点,并说明程序执行时该类的操作。声明主类必须等待GetBlockNumber类的执行。

第14行:声明一个任务类GetBlockNumber,C#中的任务类是异步执行的。

第16行:创建一个Web3实例并设置我们的节点URL。

第17行:使用Eth API,我们可以异步执行GetBlockNumber请求,并将结果存储在latestBlockNumber变量中。

第18行:打印最新的区块号,存储在latestBlockNumber变量中,字符串为“最新区块号为:”

现在要运行应用程序,请打开你的终端/cmd,转到你的.NET应用程序文件夹,并键入以下内容。

$ dotnet run

如果一切顺利,代码成功执行,你应该会看到如下输出:

结论

在这里,我们看到如何通过使用Nethereum在C#中创建.NET应用程序来连接以太坊网络。所以继续构建你的去中心化游戏和应用程序。你可以参考Nethereum的官方文档以了解更多不同功能和用例。

订阅我们的时事通讯,获取更多关于以太坊的文章和指南。如果你有任何反馈,欢迎通过Twitter与我们联系。你也可以随时在我们的Discord社区服务器上与我们聊天,那里有一些你见过的最酷的开发者 :)

  • 原文链接: quicknode.com/guides/eth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。