Для начала нам потребуется следующее:

-Текстовый редактор,

-NET Core SDK 3.1, установленный в вашей системе,

-Узел Эфириума.

Перечислив, что нам нужно для запуска web3 на c# с использованием фреймворка .Net, я хотел бы кратко объяснить важные термины, которые я всегда буду упоминать в этой статье.

DOTNET или .NET:

.NET — это бесплатная кроссплатформенная среда разработки с открытым исходным кодом для создания различных типов приложений с использованием многоязычных редакторов, таких как Visual Basic, библиотеки, c# и f#, для создания приложений для Интернета, мобильных устройств, настольных компьютеров, игр, IoT и т. д. Хотя изначально он был создан для приложений Windows, с поддержкой различных языков программирования, как веб-приложения, так и приложения на основе форм могут быть разработаны с использованием .NET и ASP.NET. Инструмент в рамках .NET Framework, с помощью которого можно создавать серверные части для веб-приложений.

Некоторые функции платформы .NET включают:

-Безопасность,

-Языковая независимость,

-Интероперабельность,

-Портативность,

-Упрощенное развертывание,

-Библиотека базовых классов,

-Общий языковой механизм выполнения (CLR).

C#:

C# — это объектно-ориентированный язык общего назначения, созданный Microsoft. Он работает и размещен на .Net Framework.

Нетериум:

Nethereum — это библиотека интеграции .Net для Ethereum; он упрощает доступ и взаимодействие смарт-контрактов с узлами Ethereum. Он совместим со всеми основными операционными системами и протестирован на мобильных устройствах, настольных компьютерах, в облаке, Xbox, hololens и Windows IoT. Nethereum отлично подходит для разработки Web3.

Некоторые функции Nethereum включают:

-Интеграция Unity3D.

-Поддержка основных методов Ethereum JSON RPC / IPC.

-Имеет библиотеки для стандартных контрактов Token, ENS и Uport.

-Поддержка HD кошелька.

-Простой жизненный цикл аккаунта.

-Имеет ABI для кодирования и декодирования типа .NET.

-Упрощенное взаимодействие со смарт-контрактом.

Теперь, когда я объяснил терминологию выше, я буду использовать пакет Nethereum web3, чтобы получить последний номер блока из блокчейна Ethereum.

Как установить Нетериум:

Чтобы установить Nethereum, в вашей системе должен быть установлен .NET Core или .NET Framework (4.5.1+). Для этой демонстрации мы установим .NET Core SDK, чтобы заставить Nethereum работать. Загрузите и установите пакет SDK для .NET Core версии 3.1 в зависимости от вашей операционной системы. Затем перейдите в терминал/командную строку и введите следующую команду:

$ dotnet новая консоль -o nethereumapp

После выполнения он создаст новое приложение .NET в текущем каталоге. Вы можете дать своему приложению любое имя по вашему выбору. Например, я назову свой nethereum1

Теперь перейдите в ваше приложение:

$ cd nethereum1

Теперь добавьте ссылку на пакет в Nethereum.Web3:

$ dotnet добавить пакет Nethereum.Web3

Вероятно, это может занять некоторое время, однако после добавления ссылки на пакет загрузите/обновите пакет, введя следующую команду:

$ dotnet восстановить

При правильной установке Nethereum будет добавлен на ваш компьютер с пакетом Nethereum web3.

Теперь, когда я установил Nethereum, я перейду к загрузке нашего узла Ethereum

Для начала нам понадобится бесплатная конечная точка QuickNode. Это может быть тестовая сеть, такая как: Rinkeby, Kovan, Ropstepn или Mainnet. После того, как вы создали бесплатную конечную точку ethereum, скопируйте конечную точку HTTP-провайдера. Она понадобится вам позже, поэтому обязательно скопируйте и сохраните ее.

Примечание.Мы можем использовать любой клиент Ethereum, например Geth или OpenEthereum (fka Parity).

Подключение к Ethereum:

Перейдите в папку приложения .NET и откройте файл C# Program.cs в текстовом редакторе.

Отредактируйте код в соответствии со следующим кодом:

Использование системы

Использование System.Threading.Tasks

Использование Nethereum.Web3;

Пространство имен nethereumapp

{

Программа курса

{

Static void Main(string[] args)

{

ПолучитьНомерБлока().Wait();

}

Статическая асинхронная задача GetBlockNumber()

{

Var web3 = new Web3("ADD_YOUR_ETHEREUM_NODE_URL");

Var lastBlockNumber = 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 и сохранить результат в переменной lastBlockNumber.

Строка 18: Печать номера последнего блока, сохраненного в lastBlockNumber, со строкой «Номер последнего блока:»

Чтобы запустить приложение, откройте терминал/cmd, перейдите в папку вашего приложения .NET и введите следующее:

$ dotnet run

После успешного выполнения кода вы должны увидеть такой вывод:

D:\QuikNode\netherum1›dotnet run

Номер последней блокировки: 11876806

Переслать