如何在光谱链上使用光子?

什么是光子网络(Photon Network)?

“闪电网络是什么?”
“比特币的链下扩容方式啊”
“雷电网络是什么?”
“以太坊的链下扩容方式啊”
“光子网络是什么?”
“...没听说过”
“什么?都2018年了,你还没听说过光子网络,那你可真是out到家了..”
“已经有了雷电网络,为什么还会有光子网络?”
“因为光子网络比雷电网络更强大!我们光子网络有的特性雷电没有..”
“我不信?口说无凭”
“好,那我给你捋一捋..”

  • 广泛的跨平台和移动设备适配应用(雷电网络是不支持移动设备的哦)
  • 精简的安全保护(状态恢复)机制
  • 惩罚机制
  • 无网支付
  • 跨链支付,光子网络可以在不借助第三方的情况下实现链下原子资产转换

“来不及解释了,赶紧上车吧->光子网络主网已经上线
“听起来挺高大上的,可是我看了半天也没看明白怎么入门使用你这玩意儿啊?”
“上车!”

怎么使用光子网络(Photon Network)?

连接以太坊或者光谱网络

这里我以光谱测试链为例,你也可以选择在以太坊公链或者私链上使用光子网络。

  • 安装光谱
    具体的步骤可以参考官方文档
  • 连接光谱测试链
    本地连接到光谱测试链,运行以下脚本,如果你是第一次连接,那么可能会需要一段时间来同步数据。
smc  --testnet  --port 60505  --ws  --wsapi "eth,admin,web3,net,debug,personal"  --rpc  --rpccorsdomain "*"  --rpcapi "eth,admin,web3,net,debug,personal"  --wsaddr "0.0.0.0"  --rpcaddr "0.0.0.0" --wsport 28546  --rpcport 28545 --wsorigins "*"  --datadir ./spectrumtest

同步数据的时候,你可以先创建一些账号,你可以选择用以太坊geth或者光谱smc创建,会生成一个存有你账号私钥的keystore文件。

smc account new 

安装光子网络

 go get github.com/SmartMeshFoundation/Photon/
cd $GOPATH/github.com/SmartMeshFoundation/Photon/cmd/Photon
./build.sh

安装好光子以后,我们运行脚本启动光子节点。

echo run photon...
photon --datadir=.photon  --address="0x10b256b3c83904d524210958fa4e7f9caffb76c6" --keystore-path ~/geth_private_data/ky --registry-contract-address 0xf62426108EeC34d86Fe2854B5E319043e11E8dC4 --password-file ~/geth_private_data/pass.txt  --eth-rpc-endpoint ws://127.0.0.1:28546  
echo "quit ok"

这几个参数意义:

  • --datadir 储存本地数据库的路径
  • --address 节点地址
  • --keystore-path 私钥文件路径
  • --password-file 私钥密码路径(就是创建账户时候设置的私钥密码)
  • --registry-contract-address 合约地址(光子就是运行在光谱链上的智能合约系统)
  • --eth-rpc-endpoint 连接测试链全节点

部署合约

光谱的测试链上已经部署了合约:0xb3aE919aB595f5844cba80499ee6423688E06F89

  • 如果你的账户里拥有ERC20token,且在测试链上拥有SMT,那么你就可以直接使用了,只需要把脚本里面的合约地址改成:0xb3aE919aB595f5844cba80499ee6423688E06F89即可。

  • 如果账户里没有ERC20koken,你也可以用我们提供的小工具(newtestenv)通过自己手动去部署合约生成token,当然这也是需要花费SMT

  • 怎么获得测试链的SMT?可以去社区找小伙伴要..

为了方便理解,我这里用一个具体的例子来说明下

  • Alice
    • 钱包地址:0x10b256b3C83904D524210958FA4E7F9cAFFB76c6
    • 持有某种ERC20koken:0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B
    • 在光谱测试链上拥有一定量的SMT
  • Bob
  • 钱包地址:0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2
  • 持有某种ERC20koken:0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B
  • 在光谱测试链上拥有一定量的SMT

交易

Alice 怎么通过光子网络与Bob进行交易呢?
通过上面的脚本启动节点
Alice

echo run photon...
photon --datadir=.photon --api-address=127.0.0.1:6001 --listen-address=127.0.0.1:60001 --address="0x10b256b3c83904d524210958fa4e7f9caffb76c6" --keystore-path ~/geth_private_data/ky --registry-contract-address 0xb3aE919aB595f5844cba80499ee6423688E06F89 --password-file ~/geth_private_data/pass.txt  --eth-rpc-endpoint ws://127.0.0.1:28546 
echo "quit ok"

Bob

echo run photon...
photon --datadir=.photon --api-address=127.0.0.1:6002 --listen-address=127.0.0.1:60002 --address="0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2" --keystore-path ~/geth_private_data/ky --registry-contract-address 0xb3aE919aB595f5844cba80499ee6423688E06F89 --password-file ~/geth_private_data/pass.txt  --eth-rpc-endpoint ws://127.0.0.1:28546 
echo "quit ok"

首先我们要把自己拥有的token注册到合约上面,可以通过接口(这里是需要花费gas的,所以需要账号里面有一定量的SMT)
PUT http://127.0.0.1:6001/api/1/tokens/0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B
然后Alice和Bob打开通道,Alice存钱200token,调用接口
PUT http://127.0.0.1:6001/api/1/channels
请求参数:

{
   "partner_address": "0x0D0EFCcda4f079C0dD1B728297A43eE54d7170Cd",
   "token_address": "0x76fCe6fF759B208D27E4D48828F820d79d1719f3",
   "balance": 200,
   "settle_timeout": 150
}

返回结果

{
    "channel_identifier": "0x03ce1b687a3f7668bb7499ccc503d299387bdb60422d119f4e81646630c176df",
    "open_block_number": 1212719,
    "partner_address": "0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2",
    "balance": 200,
    "partner_balance": 0,
    "locked_amount": 0,
    "partner_locked_amount": 0,
    "token_address": "0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B",
    "state": 1,
    "state_string": "opened",
    "settle_timeout": 150,
    "reveal_timeout": 10
}

Alice想给Bob转账100token,调用接口
POST http://127.0.0.1:6001/api/1/transfers/0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B/0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2
请求参数:

{
    "amount":100,
    "fee":0,
    "is_direct":false
}

返回结果:

{
    "initiator_address": "0x10b256b3C83904D524210958FA4E7F9cAFFB76c6",
    "target_address": "0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2",
    "token_address": "0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B",
    "amount": 100,
    "lockSecretHash": "0xea44185a3f12daa1a527ef7873accc6530a94b77df07268efec81f6a89792ff1"
}

此时可以查询通道,发现Bob在通道里面的余额已经变成100,调用接口
GET http://127.0.0.1:6001/api/1/channels
返回结果:

[
    {
        "channel_identifier": "0x03ce1b687a3f7668bb7499ccc503d299387bdb60422d119f4e81646630c176df",
        "open_block_number": 1212719,
        "partner_address": "0x151E62a787d0d8d9EfFac182Eae06C559d1B68C2",
        "balance": 100,
        "partner_balance": 100,
        "locked_amount": 0,
        "partner_locked_amount": 0,
        "token_address": "0xE328d7022e4e3AcFee9C80bBD95Dc2701Fb4eb8B",
        "state": 1,
        "state_string": "opened",
        "settle_timeout": 150,
        "reveal_timeout": 10
    }
]

到这里,一个简单的光子链下交易就完成了,如果想要把通道里面的钱结算到链上,可以调用合作结算通道接口
PATCH http://127.0.0.1/api/1/channels/0x03ce1b687a3f7668bb7499ccc503d299387bdb60422d119f4e81646630c176df

请求参数:

{"state":"closed",
  "force":false
}

此时通道已经成功结算关闭,可以去链上查询双方余额变化。

到这里,一个完整的光子使用流程:注册token-->打开通道/存钱-->交易-->合作结算/取钱关闭通道

如果你的账号里没有ERC20token,你也可以使用我们提供的小工具newtestenv快速部署合约,生成token,创建通道,建立复杂路由来体验光子网络。当然这些都是需要消耗gas的,所以需要你的账号拥有SMT
安装:

go get github.com/SmartMeshFoundation/Photon/
cd $GOPATH/github.com/SmartMeshFoundation/Photon/cmd/tools/newtestenv
go install

部署合约:

newtestenv  --keystore-path ~/geth_private_data/ky  --eth-rpc-endpoint ws://127.0.0.1:28546

一个简单的光子网络连接到光谱测试链教程就结束了,想要了解光子的更多特性,请移步官方文档,欢迎大家在使用过程中积极反应问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容