aelf 2W 美金免费送活动参与过程

2019-06-06 00:04:28 +08:00
 zywz999

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 文件里声明方法和传入传出参数才能具体执行,但优点显然就是通过这种方法我们可以实现非常多复杂的功能。这是我的第一个区块链应用,如有错误欢迎指正,谢谢。

1377 次点击
所在节点    区块链
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX