|
.NET是独立开发者和企业开发者共同喜爱的古老框架。可以选择各种语言并且能部署到各种各样的平台,包括从移动端到服务器的各种能力,这使得.NET成为各种应用的一个很好的选择。虽然.NET做了很多,但也可以说它什么也没做。例如,不能在.NET中的浏览器中运行客户端代码(除非使用Silverlight……),也不存在.NET支持的语言,这使得开发人员能够编写智能合约。
智能合约的开发语言是solidity。solidity是一种特定用途的语言,它假设许多关于它运行的环境的东西,它与区块链技术结合十分紧密。正是这些假设特点排斥其他语言。
智能合约本身只是故事的一半。对于应用程序来说,智能合约需要通过RPC来调用它们。这就是Web3客户端接入的地方。Web3客户端仅仅是客户端应用程序,它使客户端应用程序能够与以太坊上运行的智能合约进行接口交互,因此只要一个给定语言存在,那么它就可以与以太坊进行接口交互。
对于.NET来说,最重要的就是一个叫做Nethereum的项目。(Nethereum是.NET和以太坊的一个门户,地址:https://nethereum.com/)。这个库试图复制Web3.js提供的相同功能,这些功能类似于运行在浏览器和NodeJS中的JavaScript应用程序。
在本教程中,我们将向Ganache部署一个智能合约,然后使用.NET core创建一个简单的.NET应用程序来与智能合约进行接口交互。
创建和发布一个智能合约
1.下载和安装Ganache,Ganache是一个非常有用的进行以太坊开发的私有区块链。
https://truffleframework.com/ganache
2.在终端、命令提示符或Powershell会话中,安装Truffle。Truffle是一个框架和一套实用工具集,有助于促进solidity开发智能合约。使用NPM完成下面的命令。
3.建一个文件夹然后在这个文件夹下运行truffle init
4.truffle将创建一些新文件夹contract,test和migration。在contract文件夹,contracts文件夹中建一个新文件Vote.sol。
5.将下面的代码粘贴到新创建的Vote.sol中并保存该文件。这个智能合约只记录了2名候选人的选票数。合约使用消息发送者(即账户地址)作为投票人。它只允许每帐户投1票。
6.在migrations文件夹中创建一个名为2_vote.js的新文件。
7.复制下面的代码到2_vote.js中,并保存。
8.在你创建的文件夹的根目录中打开truffle.js并粘贴下面的代码,然后保存文件。这配置Truffle使用Ganache。
9.在开始菜单中启动Ganache。
10.使用Truffle部署智能合约。ganache网络是在truffle.js文件中定义的。
11.注意输出。你将看到如下类似的输出。这是投票合同的地址。复制并粘贴十六进制字符串供以后使用。
创建一个.NET应用调用智能合约
1.在一个新的目录,使用dotnet命令创建一个新的控制台应用程序。
2.安装Nethereum包。
3.编辑Program.cs文件。用下面的代码代替默认代码。这将能使控制台提示帐户地址和用户投票。保存文件。
4.在program.cs,将我们刚才记录的地址粘贴到部署联系人的地址,保存文件。
5.编译应用程序。
6.运行应用程序。
7.你会看到应用程序提示你输入。输入地址并投票。你可以在Accounts选项卡下从Ganache GUI复制帐户地址。
8.再次运行应用程序,将看到投票已经增加。
对于Nethereum来说,很容易将智能合约与任何.NET应用程序连接起来。因为Nethereum是基于.NET的,它可以用于.NET核心应用程序、.NET标准、Xamarin和各种Windows应用程序。使用Nethereum,强大的以太坊和.NET的现在由你来支配!
|
|