This is the old Algorand Developer Portal. Please head over to dev.algorand.co to explore our newly rebuilt documentation site. Please excuse us as we continue to transition content to the new portal

创建文章

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.