aelf奖励活动的Demo开发过程

aelf奖励活动的Demo开发过程

aelf是一个多链条结构,每个Dapps应用和智能合约使用自己的链条,当很多应用同时进行时,大家都不需要共享资源。同时也是因为有自己的侧链,你可以做很多自定义化,甚至不同的链条使用不同的共识机制,POS、POW、PBFT你想怎么玩就怎么玩。 在自治管理这一块儿,主链条使用DPOS共识机制,所有代币持有者可以投票选择委任代表。对于重大系统更新,社区可以投票改进,这也避免了以后系统分叉的问题。总结下来,aelf就是一个开放式的OS生态环境。

面对现有区块链系统的问题,AELF提出以下解决方案:

  1. 节点根据类型进行划分,专业化记账节点能够运行在服务器集群之上,提高整个网络性能
  2. 主链+多侧链结构有效的实现资源隔离,做到“一链一场景”
  3. DPoS共识机制下,代币持有人拥有最大话语权,保障网络高效的治理

为了实现上述目标,ELF的技术构架有以下几个方面:

  1. 一链一合约
  2. 侧链动态索引和树形侧链延伸
  3. 跨链优化

接下来说重点

aelf团队近日在其公众号上举办了体验 aelf hello world 程序,分享2W美金ELF,鄙人有幸参与到此项活动中,接下来给大家讲一讲本人踩过的坑和经验总结:
本人并没有C#开发经验,所以参考了一位大神写的教程:简书链接
这位大神写的非常详细,但就是这样的情况下我还是踩到了不少的坑。
首先配环境之类的过程就不详细说了,这一步没什么难度主要注意Vscode的报错问题还有Vscode在win10下有时候会有UAC权限问题,所以推荐大家使用管理员权限打开cmder或者powershell进行编译和运行。
首先编译并启动整个链,然后方法和变量名必须先在proto后缀的文件里面声明一遍,类似这样:

service HelloWorldContract {
​
    option (aelf.csharp_state) = "HelloWorldContractState";
​
    rpc Hello (google.protobuf.Empty) returns (HelloReturn) { }
}
​
message HelloReturn {
    string Value = 1;
}

rpc就是声明Hello方法的表达,接下来我们要找到HelloWorldContract.cs文件,这是c#的专用格式,里面可以实现方法并抛出结果,具体代码如下:

using Google.Protobuf.WellKnownTypes;
​
namespace HelloWorldContract
{
    public partial class HelloWorldContract : HelloWorldContractContainer.HelloWorldContractBase
    {
        public override HelloReturn Hello(Empty input)
        {
            return new HelloReturn {Value = "Hello world!"};
        }
    }
}

就这样,一个简单的aelf应用就写好了,接下来我们可以通过修改.proto和.cs 文件来实现各种各样的功能。
想要检查运行结果需要在js里面写然后通过浏览器查看具体结果,这里不做过多解释。
需要注意的是这种应用的C#方法和其他语言有所区别 首先需要在proto文件里声明方法和传入传出参数才能具体执行,但优点显然就是通过这种方法我们可以实现非常多复杂的功能。这是我的第一个区块链应用,如有错误欢迎指正,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值