墨客项目进展周报(第49期)

0
1027


墨客项目进展周报(第49期)

内容提要


*运营进展

1、MOAC(墨客)受邀出席德国区块链周。

2、活动预告:MOAC(墨客)将举办IPFS子链FileStorm应用开发技术交流会。

3、MOAC(墨客)参加中国区块链测评联盟第二期会议。

4MOAC(墨客)开发者社区建设进展迅速。

5、MOAC(墨客)受邀在河北大学介绍MOAC技术。



*开发进度要点

1、子链1.0.4版本开发,测试SCS JSON-RPC接口。

2、安全专利完善与提交申报。

3、链问界面优化,修正。




墨客项目进展周报(第49期)



MOAC(墨客)受邀出席德国区块链周


墨客项目进展周报(第49期)


Ryan Wang

王焱

MOAC首席业务发展官

10月22日, MOAC(墨客)受邀出席由欧洲顶尖商学院-法兰克福金融管理学院举办的亚欧区块链峰会暨德国区块链周。本次活动云集了亚欧两地顶尖投资公司、优秀项目、初创企业以及高校研究团队。

MOAC首席业务发展官Ryan Wang参加了此次论坛,作为特邀嘉宾对MOAC(墨客)做了演讲介绍。MOAC首席业务发展官Ryan Wang的演讲是当天论坛的亮点,Ryan诙谐幽默的语言,一下调动起了现场的气氛。 当提到MOAC独特的分层以及子链系统架构,使其在支持DAPP上有先天的优势时, 激起了全场来宾极大的好奇心,现场互动频繁,反响热烈。


活动预告:MOAC(墨客)将举办IPFS子链FileStorm应用开发技术交流会

墨客项目进展周报(第49期)

11月3日,MOAC(墨客)将在青岛举办IPFS子链——FileStorm应用开发技术交流会。届时,MOAC(墨客)高级开发工程师傅献农将现场讲解MOAC(墨客)IPFS子链FileStom。此外,MOAC(墨客)还邀请到青岛君享区块链科技有限公司运营总监蒋淑贞致辞。欢迎各界朋友和墨粉前来参会。

活动时间:11月3日  13:00-17:00

活动地址:青岛市市北区新疆路8号中联自由港湾C座一楼3号会议室


MOAC(墨客)参加中国区块链测评联盟第二期会议


墨客项目进展周报(第49期)

2018年10月21日,中国区块链测评联盟《区块链与分布式记账信息系统评估规范》标准工作组第二次会议如期顺利举办。会议当天,以工信部电子五所、墨客区块链、蓝石区块链实验室、北京邮电大学、北京科技大学、蓝石科技、火币中国、井通科技、安妮股份、testin、数秦科技、版全家、中百信、北京软交所、清华x-lab、新能区块链、大禹通证为代表的近二十家单位代表齐聚一堂,就标准规范进行第二轮深入讨论,根据工作进展和讨论结果对草案进行了更新,计划10月底正式对外公布标准草案,广泛征集意见和建议。




MOAC(墨客)开发者社区建设进展迅速


墨客项目进展周报(第49期)

MOAC(墨客)开发者社区建设进展迅速,近期开发完成MOAC chain3 PHP语言接口,MOAC chain3 GO语言接口等多项工具。

MOAC(墨客)开发者社区开辟创新区块链应用Dapp点子登记、赏金开发任务,微创新项目奖励申请及MOAC开发者论坛等版块,以吸引更多开发者在墨客平台进行讨论与学习。


墨客(MOAC)受邀在河北大学介绍墨客技术

墨客项目进展周报(第49期)

10月22日,MOAC(墨客)受邀在河北大学介绍墨客技术,并与河北大学师生就墨客技术进行了深入的研究与探讨。

本次讲座引起了河北大学师生的浓厚兴趣,现场座无虚席。与会师生纷纷表达了对MOAC(墨客)技术的肯定和对墨客专注服务实体经济理念的认可。现场的多位开发人员和学者表示,MOAC(墨客)对区块链行业的发展将起到决定性的作用,并计划将MOAC(墨客)作为重点课题进行研究。

 

交易情况

墨客项目进展周报(第49期)

本周墨客走势:受国际金融及大盘影响,MOAC本周出现下跌趋势,周末收至1.01美元附近。

走势取自非小号网

https://www.feixiaohao.com/search?word=MOAC

墨客交易所列表

https://www.coinbig.com/

https://www.coinw.me/

https://www.bit-z.pro

http://www.manbiwang.com

https://hb.top

http://www.ubitvip.com/

https://www.bihao.pro/

https://coinoah.com

http://www.winmaxcoin.com/

https://www.rfinex.com

https://weidex.vip

https://www.ucoin.pw

http://www.wkj.link

https://www.all-token.com

https://lexb.com

http://www.tokok.com

http://www.hibtc.com

墨客信息已收录至非小号,详情请看:

http://www.feixiaohao.com/currencies/moac/

币世界:

http://www.bishijie.com/hangqing/coin/moac

Coinmarketcap:

https://coinmarketcap.com/currencies/moac/



社群概况

墨客项目进展周报(第49期)

墨客通证持有地址:MOAC墨客原生币发行总量为2.1亿,现时流通量为1.5126亿。至本周末,墨客原生币地址数增加至334496个。


手机社区APP(安卓)

墨客项目进展周报(第49期)

iOS系统请直接打开:

http://www.moacchina.net


官方QQ群:

MOAC开发者 群号:285514319(本群仅针对MOAC开发技术进行交流讨论)

MOAC墨客公链官方1群欢迎加入 群号:479806716

官方微信群:

MOAC墨客公链官方新微信群(119群)(扫码后机器人会发送邀请链接)

墨客项目进展周报(第49期)

官方中文电报(币用链接)其他

https://0.plus/moacchina


英文社群:

Facebook:Moac Chain

https://www.facebook.com/moacchain/

Medium:MOAC

https://medium.com/moac

Telegram(International)

https://t.me/moacblockchain

Telegram(Developers)

https://t.me/MOACDevelopers

Reddit:MOAC

https://www.reddit.com/r/MOAC/

Twitter:MOAC

https://twitter.com/moac_io

其他:

墨客官网:http://moac.io

墨客中国:http://moacchina.com

墨客论坛:www.moacchina.net

浏览器:http://explorer.moac.io

github链接:

https://github.com/MOACChain/moac-core

MOAC白皮书:

http://moacdata.com/moac_whitepage_cn.pdf



墨客项目进展周报(第49期)


墨客区块链(MOAC BlockChain) ERC20合约的扩展功能



在本篇中,附件为标准erc20合约,在实际使用部署中,有很多项目需要用到扩展功能。本文在该erc20标准的基础上扩展合约功能。

1. 定义合约部署账号

从安全角度出发,本文的扩展功能大多需要合约部署账号权限。

本文将其定义为minter,并在合约部署时得到minter。

contract TokenDemo is Token {
    address minter;                   //定义合约部署账号  
   
    function TokenDemo(uint256 initialAmount, string tokenName, uint8 decimalUnits, string tokenSymbol) public {  
        minter = msg.sender;          //在合约部署时得到
    }

    //只能通过智能合约的部署账号才能调用的方法
    modifier onlyOwner() {
        require(msg.sender == minter);
        _;
    }
}

使用者需要将这两行代码分别增加到contract TokenDemo和function TokenDemo。

 

2.合约接收mc

默认情况下,合约是不能接收mc的。

function() payable public {}


加上这个函数后,合约地址就可以接收mc了。

payable关键词是编译器支持的,合约里的函数是否带有payable关键词,编译器会生成不一样的代码。如果对应的函数不支持转账,对应的函数的代码会通过revert指令撤销前面的转账操作。

如果函数没有任何参数,只能在合约销毁时(详见第8节),合约里的mc才会自动回到minter账号。

 

3.修改token基础参数

//修改name
function setName (string _value) public returns (bool) {
    require(msg.sender == minter);
    name = _value;
    return true;
}

//修改symbol
function setSymbol (string _value) public returns (bool) {
    require(msg.sender == minter);
    symbol = _value;
    return true;
}


4. 增加token总量

在标准erc20合约中,token总量在部署合约的时候确定,且不能做任何更改。

如果需要增加token总量,比较简单的方法是写一个增量的函数。

function addTokenTotal(uint256 _addAmount) public returns (bool success){

    require(msg.sender == minter);                        //只有合约部署账号得到授权
    require(_addAmount > 0);                              //增量必须大于0
  
    totalSupply += _addAmount * 10 ** decimals;           //增发后总量增加
    balances[msg.sender] += _addAmount * 10 ** decimals;  //增发量自动归到合约部署账号
    return true;
}

直接添加该函数到合约即可。

 

5. 减少token总量

有增就有减,erc20 token也可以通过烧毁(burn)实现总量的减少。

contract Token{
    //事件,用来通知token被消耗(这里就不是转移, 是token用了就没了)
    event Burn(address indexed fromAddr, uint256 value);
}

contract TokenDemo is Token {
    //正如其名, 这个是烧币的.. ,用于把自己的 token 烧掉
    function burn(uint256 _value) public returns (bool success) {
        require(msg.sender == minter);                  //合约创建者才有该功能
        require(balances[msg.sender] >= _value);        //必须要有这么多
        balances[msg.sender] -= _value;
        totalSupply -= _value;
        Burn(msg.sender, _value);
        return true;
    }
 
    //这个是用户被授权后销毁token…..
    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(msg.sender == minter);                  //合约创建者才有该功能
        require(balances[_from] >= _value);             //一样要有这么多
        require(_value <= allowed[_from][msg.sender]);  //授权后才能操作
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        totalSupply -= _value;
        Burn(_from, _value);
        return true;
    }
}

代码写了说明,就不用解释了。直接添加事件和函数到合约即可。

 

6.修改合约管理地址

有些情况下,需要转移合约管理地址的权限。

function changeAdmin(address _newAdmin) public returns (bool) {
    require(msg.sender == minter);
    require(_newAdmin != address(0));
    minter = _newAdmin;
    return true;
   
    //如果需要转移资产,下面两行enable
    //balances[_newAdmin] = balances[_newAdmin].add(balances[minter]);
    //balances[admin] = 0;
}

7. 锁定某个地址的token

此功能实现指定地址所有该合约token的锁定。既可以锁定,也可以解锁。

contract TokenDemo is Token { 

    mapping(address => bool) freezed;
 
    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(!freezed[msg.sender]);       //交易需要判断地址是否被锁定   
        require(balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]);
        require(_to != 0x0);
  
        balances[msg.sender] -= _value;      //从消息发送者账户中减去token数量_value
        balances[_to] += _value;             //往接收账户增加token数量_value
        Transfer(msg.sender, _to, _value);   //触发转币交易事件  
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(!freezed[_from]);            //交易需要判断地址是否被锁定
        require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value);

        balances[_to] += _value;             //接收账户增加token数量_value
        balances[_from] -= _value;           //支出账户_from减去token数量_value
        allowed[_from][msg.sender] -= _value;//消息发送者可以从账户_from中转出的数量减少_value
        Transfer(_from, _to, _value);        //触发转币交易事件
        return true;
    }   
 
    //冻结账户
    function freezenAccount(address _freezen) public returns (bool success) {
        require(msg.sender == minter);       //合约创建者才能冻结账户
        require(_freezen != minter);         //不能冻结合约创建者账户
 
        freezed[_freezen] = true;
        return true;
    }
 
    //解冻被冻结的账户
    function unFreezenAccount(address _freezen) public returns (bool success) {
        require(msg.sender == minter);       //合约创建者才能解冻账户
  
        freezed[_freezen] = false;
        return true;
    }

    //查询账户冻结状态
    function getFrozenAccount(address _target) public view returns (bool) {
        require(_target != address(0));
        return freezed[_target];
    }
}


8. 销毁合约


function kill() public {
    require(msg.sender == minter);
    selfdestruct(minter);
}

在其他一些比较老的教程里面,你可能会看到suicide()方法,但是为了语言更好的可读性,这个方法目前已经重新命名,以后如有需要,大家直接调用selfdestruct()方法就好。

如果合约写了payable(见第2节),且接收了mc,执行销毁合约后,合约的mc会自动转到minter账号。

合约销毁之后转给该合约地址的mc,就不能再转移出来了。

 

9.判断地址是合约地址还是普通账号地址

既然给合约地址发送mc,依赖于合约是否有接收mc功能,说明普通的发送mc操作,可能成功,也可能失败。

那怎么判断一个地址是合约地址还是普通账号地址呢?

其实是根据该地址是否包含代码来判断的。以下为accountOrContractAddr.js,填入地址,直接node运行,可以得到结果。

var Chain3 = require(‘chain3’);
var chain3 = new Chain3(new Chain3.providers.HttpProvider(‘http://localhost:8545’)); 

//getCode()方法返回指定地址上代码的16进制字符串,由于普通账户地址处没有代码,因此将仅返回16进制前缀0x。
var code = chain3.mc.getCode(“0xbe1b5b49fc5cf4300d0ee8699089XXXXXXXXXXXX”);

if(code == ‘0x’)
    console.log(‘普通账户’);
else
    console.log(‘合约账户’);

墨客项目进展周报(第49期)


【提问】: 

最近墨客好安静。

【井大】: 

墨客会于无声处听惊雷,新闻是有意储藏起来了。(笑) 

【提问】: 

月底墨客有消息吗?最近比较淡定。

【井大】: 

就是子链出来。

【观点】: 

老大,是不墨客子链没有公开跑起来说啥都白啊?

【井大】: 

部分原因。(笑) 

【观点】: 

有人发牢骚说挖 MOAC,赚的都不够电费了。

【井大】: 

现在还是有人做 T吧。

【提问】: 

井大,如果币安能免费上,咱上不?

【观点】:

我认为前 10 的能上当然要上,能多一点点交易量,就可以多承接一下矿工的 MOAC。前十的大交易所自带用户和流量的。

【井大】: 

小交易所花钱的,肯定不会去。

【观点】: 

大交易所也难说能带来啥流量,除非将来国家自己开场子。

【井大】: 

大交易所也要看情况,又没有说不上大交易所。现在火币和币安这些,日活也就是5千多,威链都有2千多了。

【提问】: 

威链怎么不上主流币呢?多搞几个有名的啊,比如比特币啥的。

【井大】: 

不是有了以太吗?估计井畅现在忙死,等人更多的时候再做吧。

【观点】: 

威链几个问题: 1、推广; 2、网络。

推广方面就是没多少其他币种,大多数还是井系,感觉还是内部交易所。这个应该改观一下,改为对外的,为整个区块链服务的交易所;网络方面,这个大家吐槽太多了。

【井大】:

不奇怪,现在重点广电;加上目前情况,很多交易所自己也玩下去就没有啥意愿。


墨客项目进展周报(第49期)


区块链赋能元宝枫,井通联手大地宝,打造产业扶贫新模式

10月23日,“大地宝”元宝枫健康生态产业链启动会议在北京金基业大厦举办。“小井通、大生态”,井通联手大地宝,整合资源,共同打造元宝枫产业链,实现链改与实体结合,真正创造社会价值,满足刚性需求。


井通科技任命冯长利为副总裁

10月25日,井通科技任命冯长利为副总裁,主管东北区事业部。


【丹麦银行】宣布加入区块链导向的贸易融资平台


10 月 24 日,丹麦最大的银行丹麦银行(Danske Bank)周一宣布,已加入以区
块链为导向的马可波罗网络(Marco Polo Network),这是一个由 R3 和 TradeIX 牵头的全球贸易融资平台和网络。该平台面向银行,利用 TradeIX 提供的技术。它为企业客户提供 ERP 嵌入式营运资本融资应用。马可波罗网络已经包含众多银行业和金融业巨头,如法国巴黎银行(BNP Paribas)、荷兰国际集团(ING)、德国商业银行、渣打银行、英美贸易银行、法国外贸银行(Natixis)、SMBC 银行(SMBC)、曼谷银行、DNB 和 OP 金融集团。


【欧洲银行业协会】分布式账本技术可以对“了解客户”(KYC)流程等产生积极影响


10 月 24 日,欧洲银行业协会 EBA 认为分布式账本技术(DLT)可以对“了解客户”(KYC)流程及其数据管理产生积极影响。 EBA Cryptotechnologies 工作组主席 JoséVicente 表示金融机构内基于 DLT 的数据共享有可能提高数据集成。如果每个部门都具有共享的统一的 KYC 属性视图,则客户将不再需要为每个附加服务重新提交KYC文档。基于DLT的数据共享甚至可以扩展到包括多个金融机构。


【阿里云】利用区块链技术开展全球原产地溯源计划


10 月 23 日,今年双 11 期间,天猫国际,联合菜鸟和阿里云将率先实现基于 IoT 技术、区块链技术的全球原产地溯源升级,这在全球也尚属首例突破。国内消费者收到商品后,通过手机淘宝扫一扫 IoT 货品追踪溯源码,即可查看进口商品完整的商品溯源实时信息。


本周要点



1、测试网发布女娲1.0.4版本。

2链问测试版发布。

3、举办IPFS子链FileStorm应用开发技术交流会


墨客项目进展周报(第49期)



分享:

留下一个答复

请在此输入您的评论
请留下您的大名