Metadium 测试网(Kalmia)开发者指南

Metadium 测试网(Kalmia)开发者指南

若想浏览相关外链请点击阅读原文(英文,Medium)



概述


测试网的目的是检查平台的稳定性和可扩展性。该测试从 2018 年 9 月 30 日开始,在此阶段,管理帐户或挖掘节点此时不会向公众开放。参与者可以测试发送交易、创建合同等等,但是帐户可能受限以保持传入流量受到控制。存在四个测试权限帐户、AWS 上的三个节点和可用的二十亿总代币。

测试网路线图


从 9 月 30 日到 2018 年底,将有三个固定/封闭的采矿节点和四个受限的管理账户。

2019 年上半年,我们将推出 MetaID 服务的公开测试版。2019 年第一季度的友好合作伙伴和 2019 年第二季度没有账户现时限制的公众将获得开放治理。

如何参与


完成一个简单的 key-value store 合约,以测试 Metadium 区块链平台。代码如下

// kv-store.sol
 
pragma solidity ^0.4.0;
 
contract KVStore {
    int256 public count;
    mapping (bytes => bytes) data;
 
    event Log(string which, bytes key, bytes value);
 
    function put(bytes key, bytes value, bool log) public returns (int inc) {
        if (data[key].length == 0) {
            inc = 1;
            count++;
        }
        data[key] = value;
        if (log) {
            emit Log("put", key, value);
        }
    }
 
    // _data is tightly packed.
    // if not use: ix += 0x20 + (k.length+31)/32*32, instead of
    //             ix += 0x20 + k.length
    function mput(bytes _data, bool log) public returns (int cnt) {
        bytes memory k;
        bytes memory v;
        uint ix;
        uint eix;
 
        assembly {
            ix := add(_data, 0x20)
        }
        eix = ix + _data.length;
 
        while (ix < eix) {
            assembly {
                k := ix
            }
            ix += 0x20 + k.length;
            require(ix < eix);
            assembly {
                v := ix
            }
            ix += 0x20 + v.length;
            require(ix <= eix);
 
            if (data[k].length == 0) {
                cnt++;
            }
            data[k] = v;
        }
        count += cnt;
        if (log) {
            emit Log("mput", "", "");
        }
    }
 
    function del(bytes key) public {
        if (data[key].length != 0) {
            count--;
            delete data[key];
        }
    }
 
    function get(bytes key) public view returns (bytes value) {
        value = data[key];
    }
}
// EOF
  • 从我们的 github 帐户下载 go-metadium
  • 运行测试网节点;
  • 生成您自己的地址;
  • 通过接口请求 Token;
  • 安装并运行演示代码;
  • 部署自己的智能合约并进行测试;
  • 使用 Metadium Blockchain Explorer;
  • 通过接口请求 Token。

通过Metadium 测试网接口请求 Token


测试网的接口可以在【这里】发现。

Metadium 接口为用户提供测试用 Meta 币。测试版 Meta 允许用户在 Metadium 测试网上运行智能合约。用户可以利用接口重新填充测试元,而无需开发人员的帮助。

当前版本的 Metadium 接口具有以下战略性应用,限制每个请求地址的 Meta 请求间隔,限制每个请求的 IP 地址的 Meta 请求间隔和限制请求地址的 Meta 余额(如果限制为 0,那么将没有限制)。


https://testnetfaucet.metadium.com/


区块链浏览器

Metadium 测试网区块链浏览器可以在这里找到。它显示有关区块链活动的信息,并显示交易历史记录和区块详细信息。

https://testnetexplorer.metadium.com/


如何安装 gmet:

获取 Metadium 代码。

$ git clone https://github.com/metadium/go-metadium

开工。

$ cd go-metadium
$ make

设置目录,从 Metadium 测试网下载 genesis.json。

$ cd <dir>
$ bin/gmet --datadir <dir> --bootnodes "enode://a6d0067ef52e41e30e6417ba3fa15fdfcc820c47f0932eac6a659cdf930644
3bbcd900e74710fbedd3c1cb50b4ef940fc944130345e7786816c1a8a14cda5aba@54.250.11.170:8589" --rpc --rpcaddr 0.0.0.0

加入metadium 测试网,其 bootnode id 是

“enode://a6d0067ef52e41e30e6417ba3fa15fdfcc820c47f0932eac6a659cdf9306443bbcd900e74710fbedd3c1cb50b4ef940fc944130345e7786816c1a8a14cda5aba@54.250.11.170:8589" 。

$ cd <dir>
$ bin/gmet — datadir <dir> — bootnodes “enode://a6d0067ef52e41e30e6417ba3fa15fdfcc820c47f0932eac6a659cdf930644
3bbcd900e74710fbedd3c1cb50b4ef940fc944130345e7786816c1a8a14cda5aba@54.250.11.170:8589" — rpc — rpcaddr 0.0.0.0


如何开始性能测试:

获取 Metadium 演示代码。

$ git clone https://github.com/metadium/metadium-demo

继续!

$ cd metadium-demo
$ make

编译 kv-store.sol。你需要 `solc' 或者 Docker。

$ build/bin/solc.sh contracts/kv-store.sol ./kv-store.js

准备就绪,或者获取新的以太坊钱包文件。例如:

To create a new wallet file
$ <go-metadium-dir>/build/bin/gmet metadium new-account — password <password> — out account-1

获得帐户资金,资金可能通过 Metadium 接口。

创建键值存储合同。

$ build/bin/cmet -a <password> <ethereum-wallet-file> -s <http-rpc-url> -g <gas> deploy <contract-in-js-or-json>
E.g.
$ build/bin/cmet -a password account-1 -s http://localhost:8858 -g 10000000 deploy ./kv-store.js
Contract mined! address: 0x26d38f0cdc805ae4feb84f5f419813c1ba462149 transactionHash: 0x9a5131ebea29b79e398dcb954c67e7785e55e55389339af829bba5a090a08486

运行压力测试。

$ build/bin/cmet -a <password> <ethereum-wallet-file> -s <http-rpc-url> -g <gas> -i <contract-in-js-or-json> -c <contract-address> bulk-kv-put <prefix> <start> <end> <batch-count>
E.g.
$ build/bin/cmet -a password account-1 -s http://localhost:8858 -g 10000000 -i ./kv-store.js -c 0x26d38f0cdc805ae4feb84f5f419813c1ba462149 bulk-kv-put a1 1 1000000 100
1–100: 0x6c723932436ac6e538f92cc63ef0cebe276134c73fb8aa5887c7cd5c47b6117
8
…
999901–1000000: 0xea006c8c5a3fbe5dcdedfe9f0749fa9a5591f4547af48c45698fcfd2316d64
90
Checking last tx 0xea006c8c5a3fbe5dcdedfe9f0749fa9a5591f4547af48c45698fcfd2316d6
490…………..done.
Took 1000000 / 151.519 = 6599.832 tps


Genesis 文件信息

使用 gmet 中的 genesis 状态文件或 genesis.json 创建创始区块。此文件包含生成区块 0 所需的所有数据,包括谁启动了具有多少币的测试网。这是一个实实在在的 Metadium genesis 状态文件,用于初始化 genesis 区块。

{
  "alloc": {
    "0x0A181237Dc34Dd0806E37381F4Cf211148b63E07": {
      "balance": "0x19d971e4fe8401e74000000"
    },
    "0x378360d4f25E6377f3da53F8cF09e9a258118528": {
      "balance": "0x19d971e4fe8401e74000000"
    },
    "0x57C88A783406FcA315257Ea7bEE021bc96225394": {
      "balance": "0x19d971e4fe8401e74000000"
    },
    "0xa07eC413aB0A6B15FDAE71eC5F73Eeb0A0Fd94D6": {
      "balance": "0x19d971e4fe8401e74000000"
    }
  },
  "coinbase": "0x378360d4f25E6377f3da53F8cF09e9a258118528",
  "config": {
    "byzantiumBlock": 0,
    "chainId": 101,
    "eip155Block": 0,
    "eip158Block": 0,
    "homesteadBlock": 0
  },
  "difficulty": "0x1",
  "extraData": "0xa6d0067ef52e41e30e6417ba3fa15fdfcc820c47f0932eac6a659cdf9306443bbcd900e74710fbedd3c1cb50b4ef940fc944130345e7786816c1a8a14cda5aba",
  "gasLimit": "0x10000000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "nonce": "0x0000000000000042",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "rewards": "0x",
  "timestamp": "0x00"
}


如何提供反馈和报错

由于 Metadium 区块链仍处于早期阶段,我们的团队很乐意看到开发人员测试我们的网络。为了提供反馈并报告 Kalmia 测试网的任何错误,请发送电子邮件至 tech@metadium.com 或加入我们在 FacebookTelegramMedium 上的社区频道。


我们鼓励您参与并使用我们的测试网络。一如既往,让我们知道您的想法,我们期待继续改进 Metadium 区块链。 感谢您的关注。我们期待听到您的反馈!


干杯,

Metadium 团队敬上



项目官网 : www.metadium.com/cn
Telegram群 : t.me/MetadiumOfficial
GitHub: github.com/metadium


微信公众号:Metadium
知乎展览 : zhihu.com/org/metadium-

微博公众号 :weibo.com/6630486964

发布于 2018-10-05