创建文章

We are looking for publications that demonstrate building dApps or smart contracts!
See the full list of Gitcoin bounties that are eligible for rewards.

Tutorial Thumbnail
入门 · 小于15分钟

使用.net进行Algorand开发系列教程之开发环境搭建

使用.net进行Algorand开发系列教程的基本介绍及开发环境的搭建。带带领大家一步一步的搭建.net的开发环境。

本教程的配套视频请查看:https://www.bilibili.com/video/BV1pK4y1f7rQ

需要的工具和环境

多数用户应该还没有听说过Algorand有.net SDK。你想的没错,.net SDK是由我开发的,第三方的,“野生”的SDK。

此SDK参加了Algorand基金会发布的发展奖励计划(Development Awards),第一个经过了Algorand基金会的测试获得了奖励(https://mp.weixin.qq.com/s/oLLBPWp1E5YUdA-gIYmFPg)。之后又经过几个多的开发与调试,现在.net SDK已经是一个功能成熟,经测试相当稳定的SDK了,也希望大家对此项目进行更多的测试与使用,共同改进此项目。

项目地址:https://github.com/RileyGe/dotnet-algorand-sdk

背景

随着微软公司的不断研发,.net已经从一种专用于Windows的平台的开发语言,转变成了一种跨平台、应用广泛的编程语言。特别是在Windows桌面开发及游戏开发领域,.net具有无与伦比的优势。现在仍有大量用户使用.net语言进行开发,所以使用.net连接Algorand十分必要。

本教程所有的代码、示例都是使用C#语言,在Microsoft Visual Studio Community 2019,使用.net Standard 2.0,在Windows 10操作系统下开发的。得益于.net Standard的优异的跨平台特性,理论上本教程示例中所有的代码都是可以在所有.net Standard支持的平台上运行,也希望大家提供在不同平台上的测试结果。

在本教程的示例中使用的是PureStake公司提供的开发者API服务,所有测试都是基于TESTNET。由于Algorand的.net SDK对独立实例及PureStake的良好支持,开发者可以非常方便的在主网及测试网络,PureStake及独立实例之间进行迁移。

下面我们就从头开始,一步一步的使用.net来连接并使用Algorand。

系列教程介绍

本系列教程共分为4部分:

  • 开发环境搭建。此部分主要包括net SDK介绍、如何使用独立实例或purestake、使用Visual Studio创建项目及最后实现一个简单示例程序。

  • 账号操作。此部分主要包括账号的基本概念及使用.net进行账号基本操作、转账操作、签名操作等内容。

  • ASA介绍及管理操作。此部分主要包括ASA的基本介绍,及使用.net进行ASA的创建、修改及销毁操作。

  • ASA转账操作。此部分继续上一部分的内容,继续介绍使用.net进行ASA的激活、转账、冻结及撤回操作。

实际上,本系列教程只是Algorand可以做的事件一小部分,在了解了这些之后,你可以发挥你的想象力,使用.net SDK在Algorand网络中做更多的事。

步骤

Visual Studio项目创建

Visual Studio及.net Standard的安装这里就不再赘述,下面我们就直接开始吧!

此步骤其实非常简单,与普通项目没有任何区别。熟练使用Visual Studio的用户不妨自己探索一下:步骤分为“新建控制台应用程序(.net Core)”,然后在新建的应用程序中使用“NuGet 包管理器”查找并安装“Algorand”。操作的主要步骤截图如下:

创建控制台应用程序(.net Core):

image-20201224205703545

打开NuGet包管理器:

image-20201224205748085

搜索并安装Algorand:

image-20201224205823000

连接到Algorand

在开始连接之前,你需要选择使用什么方式,连入什么网络。Algorand有主网(MainNet)、测试网(TestNet)和开发网(BetaNet)。开发实际应用,最终需要布置在主网上。但如果是用于开发,建议使用测试网。由于测试网和主网在功能上是完全一致的,不同的是其代币的获取方式。在测试网可以通过https://bank.testnet.algorand.network/任意获取代币。开发网会有最新的Algorand的特征,但相比测试网更不稳定。具体区别如下,更多内容可以参考:https://developer.algorand.org/docs/build-apps/setup/

image-20201224210935199

接入方式也有三种:使用三方服务、使用Docker沙盒和独立节点。具体对比如下:

image-20201224210958580

由于笔者开发都是在Windows系统下的,所以选用了第三方服务。下面以PureStake接入algorand测试网络为例,讲解接入Algorand网络。其他两种方式接入流程可以参考:https://developer.algorand.org/docs/build-apps/setup/

获取ALGOD_API_ADDR和ALGOD_API_TOKEN

只要配置了不同的地址与密钥,.net SDK可以自动识别不同的连接方式。对于使用PureStake我们需要使用的是API ADDRESS和API KEY;对于独立实例,我们需要使用的是REST节点的IP地址(REST endpoint’s IP address)和algod密钥(algod token)。

下面详细的描述了如何从注册开始获取PureStake的API ADDRESS和API KEY。如果大家已经熟悉PureStake的使用,可以直接跳过这一部分,直接阅读代码部分。如果大家使用的独立实例,请参考:https://developer.algorand.org/docs/build-apps/setup/#3-run-your-own-node

首先在https://developer.purestake.io/网站上进行注册:

image-20201224211016289

PureStake后台功能:

image-20201224211049788

注意:现在由于PureStake进行了升级,ALGOD_API_ADDR请使用”ALGOD TESTNET API AND 1 MORE…”栏中提供的地址。.net SDK暂不支持新版本的API.

信息

除此以外,开发者现在也可以使用由 Algorand 和 BSN 提供的节点服务:https://bsn.algorand.org/

简单测试程序

得到地址与密钥之后,就在Program.cs文件中添加如下代码:

string ALGOD_API_ADDR = "ALGOD_API_ADDR";  //在此处添加ALGOD TESTNET API地址
string ALGOD_API_TOKEN = "ALGOD_API_TOKEN";    //在此处添加ALGOD API KEY
AlgodApi algodApiInstance = new AlgodApi(ALGOD_API_ADDR, ALGOD_API_TOKEN);
try
{
    Supply supply = algodApiInstance.GetSupply();
    Console.WriteLine("Total Algorand Supply: " + supply.TotalMoney);
    Console.WriteLine("Online Algorand Supply: " + supply.OnlineMoney);
}catch (ApiException e)
{
    Console.WriteLine("Exception when calling algod#getSupply: " + e.Message);
}

测试输出如下:

image-20201224211312761

总结

本文在对.net SDK、Algorand进行了必要的介绍的基础上,在Windows系统上搭建了开发环境。最后进行与Algorand的连接,写了一个简单的示例程序。后面的教程都是以本教程搭建的开发环境为基础,进行后续开发。

本系列科程的所有代码都可以在https://github.com/RileyGe/algo-samples上找到。欢迎大家提Issues或Pull Request.