分享
  1. 首页
  2. 文章

Linux或者Mac环境安装Photon network

rectinajh · · 1520 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

官方安装文档:
https://photonnetwork.readthedocs.io/en/latest/installation_guide/

下载源码:
https://github.com/SmartMeshFoundation/Spectrum
https://github.com/SmartMeshFoundation/Photon

流程是:
1,go安装及配置
2,安装运行spectrum
3,下载运行photon

GO安装及配置

  • 下载地址 https://golang.org/dl/

  • 进行安装

    步骤:打开终端 → 进入local目录 → 下载压缩包 → 
     解压到当前目录 → 删除压缩包 → 创建gopath(后续开发项目目录) → 
     进入gopath → 创建 bin src pkg
    #Linux执行
    注意: 必须安装在 /usr/local/ 目录下,因为GOROOT必须为/usr/local/go
    cd /usr/local
    wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz 
    tar zxvf go go1.9.7.linux-amd64.tar.gz
    rm go1.9.7.linux-amd64.tar.gz 
    mkdir gopath
    cd gopath
    mkdir -p bin src pkg
    

GO环境变量配置

  • 配置环境

     vim ~/.bashrc
     vim /etc/profile
    #尾部添加,全是大写
    #根目录
    export GOROOT=/usr/local/go
    #bin目录
    export GOBIN=$GOROOT/bin
    #工作目录
    export GOPATH=/usr/local/gopath
    export PATH=$PATH:$GOPATH:$GOBIN:$GOPATH
    #退出保存,
    source ~/.bashrc生效
    #执行
    go env
    

安装运行Spectrum链

详细教程如下:
Spectrum链开发 -- Mac开发环境搭建
https://www.jianshu.com/p/078ccfcfb001

Spectrum链开发--Linux环境搭建
https://www.jianshu.com/p/92d067c44b3c

启动Spectrum链:

mkdir smclog testnetdata
 ls
Photon smc smc-linux-amd64 smc-linux-amd64-0.5.1.tar.gz smclog Spectrum testnetdata
sudo ./smc-linux-amd64 --datadir=/home/ubuntu/testnetdata/ --testnet --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" --wsorigins "*" console
INFO [10-30|18:29:47] Starting peer-to-peer node instance=Smc/v0.5.1-release-f085b369/linux-amd64/go1.10.1
INFO [10-30|18:29:47] Allocated cache and file handles database=/home/ubuntu/testnetdata/smc/chaindata cache=128 handles=1024
INFO [10-30|18:29:47] Initialised chain configuration config="{ChainID: 3 Homestead: 0 DAO: <nil> DAOSupport: true EIP150: <nil> EIP155: 0 EIP158: 0 Byzantium: 62678 Engine: tribe}"
INFO [10-30|18:29:47] Initialising Ethereum protocol versions="[63 62]" network=3
INFO [10-30|18:29:47] Loaded most recent local header number=1207096 hash=5c7bd6...488789 td=3066556
INFO [10-30|18:29:47] Loaded most recent local full block number=1207096 hash=5c7bd6...488789 td=3066556
INFO [10-30|18:29:47] Loaded most recent local fast block number=1207096 hash=5c7bd6...488789 td=3066556
INFO [10-30|18:29:47] Loaded local transaction journal transactions=0 dropped=0
INFO [10-30|18:29:47] Regenerated local transaction journal transactions=0 accounts=0
WARN [10-30|18:29:47] Blockchain not empty, fast sync disabled 
INFO [10-30|18:29:47] Starting P2P networking 
INFO [10-30|18:29:49] UDP listener up self=enode://7d2541c024906b566e9399694a5e12c238d1733cf47c5adee60ec6fcc542d1d544d003c03c462b1aa850fc9b41c6627ae7e3f9285f6b28c7ef5b6053dcec25a9@[::]:60303
INFO [10-30|18:29:49] HTTP endpoint opened: http://0.0.0.0:18545 
INFO [10-30|18:29:49] WebSocket endpoint opened: ws://[::]:18546 
INFO [10-30|18:29:49] RLPx listener up self=enode://7d2541c024906b566e9399694a5e12c238d1733cf47c5adee60ec6fcc542d1d544d003c03c462b1aa850fc9b41c6627ae7e3f9285f6b28c7ef5b6053dcec25a9@[::]:60303
INFO [10-30|18:29:49] init tribe.status when chiefservice start end. getnodekey=true
INFO [10-30|18:29:49] IPC endpoint opened: /home/ubuntu/testnetdata/smc.ipc 
INFO [10-30|18:29:49] init tribe.status success. 
Welcome to the Geth JavaScript console!
instance: Smc/v0.5.1-release-f085b369/linux-amd64/go1.10.1
coinbase: 0xbcb48ef81630c6ca138eebbb8dabb938ec464ff9
at block: 1207096 (2018年10月30日 18:05:55 CST)
 datadir: /home/ubuntu/testnetdata
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 tribe:1.0 txpool:1.0 web3:1.0
> INFO [10-30|18:29:59] Block synchronisation started 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
::: ORIGIN ::: origin= 1207096 height= 1207199
::: ORIGIN ::: d.syncStatsChainHeight= 1207199 current= 1207096
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
---- FullSync ---->
INFO [10-30|18:30:00] -> num=1207098 , diff=3 , hash=0x519146afa188bc868347f86fc5eefda47d27e07f2d020d75f504edee514d0f82 , miner=0x4110bD1fF0b73fa12C259acF39C950277f266787 
INFO [10-30|18:30:00] [ downloader ] ==> importBlockResults() 1207097 --> 1207098. 

安装运行Photon 光子网路

go get github.com/SmartMeshFoundation/Photon/
cd /usr/local/gopath/github.com/SmartMeshFoundation/Photon/
ubuntu@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon$ ls
accounts encoding mkdocs.yml photonService.go smoketest.sh
ackhelper.go eventhandler.go mobile README.md testdata
blockchain feepolicy.go models req.go transfer
channel goclean.sh network rerr utils
cmd internal notify restful vendor
codefortest log params restore.go
codefortest.go Makefile pfsproxy rungotest.sh
docs messagehandler.go photonapi.go runpprof.sh
更新到最新的代码:
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon# git pull
remote: Enumerating objects: 41, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 41 (delta 20), reused 40 (delta 20), pack-reused 0
Unpacking objects: 100% (41/41), done.
From https://github.com/SmartMeshFoundation/Photon
 9c0f89b..90602a9 master -> origin/master
 * [new tag] v0.91 -> v0.91
Updating 9c0f89b..90602a9
Fast-forward
 Makefile | 3 ++-
 cmd/photon/build.sh | 9 +++++++++
 cmd/photon/buildall.sh | 30 ++++++++++++++++++++++++++++++
 cmd/photon/mainimpl/impl.go | 7 +++++--
 docs/installation_guide.md | 7 +++++--
 docs/mobile_api_zh.md | 2 +-
 mobile/build.sh | 19 +++++++------------
 mobile/build_android.sh | 10 ++++------
 mobile/build_iOS.sh | 8 ++------
 9 files changed, 65 insertions(+), 30 deletions(-)
 create mode 100755 cmd/photon/build.sh
 create mode 100755 cmd/photon/buildall.sh
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon# ls
accounts cmd encoding internal mkdocs.yml notify photonService.go restful smoketest.sh vendor
ackhelper.go codefortest eventhandler.go log mobile params README.md restore.go testdata
blockchain codefortest.go feepolicy.go Makefile models pfsproxy req.go rungotest.sh transfer
channel docs goclean.sh messagehandler.go network photonapi.go rerr runpprof.sh utils
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon# cd cmd/photon/
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/cmd/photon# ls
buildall.sh build.sh main.go mainimpl
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/cmd/photon# ./build.sh 
90602a99958e25b71218784bb3ba9254de790675
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/cmd/photon# ls
buildall.sh build.sh main.go mainimpl photon
photon即我们的可执行文件
或者
wget https://github.com/SmartMeshFoundation/Photon/releases 目录获得最新编译的程序
屏幕快照 2018年10月31日 上午11.06.01.png

编译生成iOS或者安卓的sdk

root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/mobile# ls
api.go build_android.sh build_iOS.sh build.sh main.go mobile_test.go primitives.go
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/mobile# ./build_iOS.sh 
90602a99958e25b71218784bb3ba9254de790675
goversiongo1.9.7linux/amd64
TueOct30145225CST2018
root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/mobile# ./build_android.sh 
90602a99958e25b71218784bb3ba9254de790675
goversiongo1.9.7linux/amd64
TueOct30145238CST2018
0.91

运行Photon

在keystore创建密码登录密码,spectrum创建的用户名
cd /home/ubuntu/testnetdata/keystore
UTC--2018年10月30日T07-26-23.224590191Z--9dabc8a16b179b9521c68243200492a5ca0e5630
输入spectrum创建的用户名密码
root@VM-0-16-ubuntu:/home/ubuntu/testnetdata/keystore# touch pass.txt
root@VM-0-16-ubuntu:/home/ubuntu/testnetdata/keystore# ls
pass.txt
UTC--2018年10月30日T07-26-23.224590191Z--9dabc8a16b179b9521c68243200492a5ca0e5630
root@VM-0-16-ubuntu:/home/ubuntu/testnetdata/keystore# vi pass.txt 
root@VM-0-16-ubuntu:/home/ubuntu/testnetdata/keystore# ls
pass.txt
UTC--2018年10月30日T07-26-23.224590191Z--9dabc8a16b179b9521c68243200492a5ca0e5630
root@VM-0-16-ubuntu:/home/ubuntu/testnetdata/keystore# ls
pass.txt
UTC--2018年10月30日T07-26-23.224590191Z--9dabc8a16b179b9521c68243200492a5ca0e5630

启动命令详解:

root@VM-0-16-ubuntu:/usr/local/gopath/src/github.com/SmartMeshFoundation/Photon/cmd/photon# ./photon -help
GoVersion=goversiongo1.9.7linux/amd64
GitCommit=90602a99958e25b71218784bb3ba9254de790675
builddate=TueOct3014:49:49CST2018Version=0.91
os.args=["photon" "-help"]
photon [global options] command [command options] [arguments...]
VERSION:
 0.91
COMMANDS:
 help Shows a list of commands or help for one command
 
GLOBAL OPTIONS:
 --address value The ethereum address you would like photon to use and for which a keystore file exists in your local system.
 --keystore-path "/root/.ethereum/keystore" If you have a non-standard path for the ethereum keystore directory provide it using this argument. 
 --eth-rpc-endpoint value "host:port" address of ethereum JSON-RPC server.\n'
 'Also accepts a protocol prefix (ws:// or ipc channel) with optional port', (default: "/root/.ethereum/geth.ipc")
 --registry-contract-address value hex encoded address of the registry contract.
 --listen-address value "host:port" for the photon service to listen on. (default: "0.0.0.0:40001")
 --api-address value host:port" for the RPC server to listen on. (default: "127.0.0.1:5001")
 --datadir "/root/.photon" Directory for storing photon data.
 --password-file value Text file containing password for provided account
 --debugcrash enable debug crash feature
 --conditionquit value quit at specified point for test
 --nonetwork disable network, for example ,when we want to settle all channels
 --fee enable mediation fee
 --xmpp use xmpp as transport
 --xmpp-server value use another xmpp server (default: "193.112.248.133:5222")
 --ignore-mediatednode-request this node doesn't work as a mediated node, only work as sender or receiver
 --enable-health-check enable health check
 --matrix-server value use another matrix server
 --matrix use matrix as transport
 --reveal-timeout value channels' reveal timeout, default 10 (default: 10)
 --pfs value pathfinder service host
 --verbosity value Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=trace (default: 3)
 --vmodule value Per-module verbosity: comma-separated list of <pattern>=<level> (e.g. eth/*=5,p2p=4)
 --backtrace value Request a stack trace at a specific logging statement (e.g. "block.go:271")
 --debug Prepends log messages with call-site location (file and line number)
 --pprof Enable the pprof HTTP server
 --pprofaddr value pprof HTTP server listening interface (default: "127.0.0.1")
 --pprofport value pprof HTTP server listening port (default: 6060)
 --memprofilerate value Turn on memory profiling with the given rate (default: 524288)
 --blockprofilerate value Turn on block profiling with the given rate (default: 0)
 --cpuprofile value Write CPU profile to the given file
 --trace value Write execution trace to the given file
 --logfile value redirect log to this the given file
 --help, -h show help
 --version, -v print the version

sudo ./photon --datadir=.photon --api-address=0.0.0.0:5001 --listen-address=0.0.0.0:40001 --address=9dabc8a16b179b9521c68243200492a5ca0e5630 --keystore-path /home/ubuntu/testnetdata/keystore --registry-contract-address 0xb3aE919aB595f5844cba80499ee6423688E06F89 --password-file jianghua --eth-rpc-endpoint ws://0.0.0.0:18546

--datadir 缓存目录
--eth-rpc-endpoint 这个参数是是smc节点的ip,如果是本地节点ws://0.0.0.0:18546是可以的,如果部署在服务器上,缓存运行smc的ip既可。


sudo ./photon --datadir=.photon --api-address=0.0.0.0:5001 --listen-address=192.168.0.145:40001 --address=9dabc8a16b179b9521c68243200492a5ca0e5630 --keystore-path /home/ubuntu/testnetdata/keystore --registry-contract-address 0xb3aE919aB595f5844cba80499ee6423688E06F89 --password-file jianghua --eth-rpc-endpoint ws://0.0.0.0:18546
GoVersion=goversiongo1.9.7linux/amd64
GitCommit=90602a99958e25b71218784bb3ba9254de790675
builddate=TueOct3014:49:49CST2018Version=0.91
os.args=["photon" "--datadir=.photon" "--api-address=0.0.0.0:5001" "--listen-address=192.168.0.145:40001" "--address=9dabc8a16b179b9521c68243200492a5ca0e5630" "--keystore-path" "/home/ubuntu/testnetdata/keystore" "--registry-contract-address" "0xb3aE919aB595f5844cba80499ee6423688E06F89" "--password-file" "jianghua" "--eth-rpc-endpoint" "ws://0.0.0.0:18546"]
INFO [10-30|17:37:50.303] Welcome to photon,version 0.91
 
INFO [10-30|17:37:50.303] os.args=["photon" "--datadir=.photon" "--api-address=0.0.0.0:5001" "--listen-address=192.168.0.145:40001" "--address=9dabc8a16b179b9521c68243200492a5ca0e5630" "--keystore-path" "/home/ubuntu/testnetdata/keystore" "--registry-contract-address" "0xb3aE919aB595f5844cba80499ee6423688E06F89" "--password-file" "jianghua" "--eth-rpc-endpoint" "ws://0.0.0.0:18546"] 
INFO [10-30|17:37:51.384] Start with account 0x9DAbC8A16B179B9521c68243200492A5ca0e5630 
2018年10月30日 17:37:51 [impl.go:198] [I] ethclient connection status changed from 0 to 1
INFO [10-30|17:37:51.419] create photon service registry=0xb3aE919aB595f5844cba80499ee6423688E06F89,node=0x9DAbC8A16B179B9521c68243200492A5ca0e5630 
ERROR[10-30|17:37:51.422] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
INFO [10-30|17:37:51.668] changeStatus from 0 to 1 matrix=9dab
ERROR[10-30|17:37:52.422] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
INFO [10-30|17:37:53.331] get state change since 0 
WARN [10-30|17:37:53.337] AlarmTask missed 1206974 blocks 
ERROR[10-30|17:37:53.423] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
ERROR[10-30|17:37:54.423] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
INFO [10-30|17:37:55.403] NewTokenAdd token=0xF0123C3267Af5CbBFAB985d39171f5F5758C0900,tokennetwork=0x3b5AdD6F9164B51DB2Ee0126D43Df06207d91f5d 
INFO [10-30|17:37:55.403] Photon Startup complete and history events process complete. 
INFO [10-30|17:37:55.409] NewChannel tokenNetwork=3b5a,token=f012,participant1=e011,participant2=8330 
INFO [10-30|17:37:55.415] NewChannel tokenNetwork=3b5a,token=f012,participant1=e011,participant2=d8d7 
INFO [10-30|17:37:55.423] NewChannel tokenNetwork=3b5a,token=f012,participant1=fb07,participant2=e011 
ERROR[10-30|17:37:55.423] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
INFO [10-30|17:37:55.426] NewChannel tokenNetwork=3b5a,token=f012,participant1=70ae,participant2=810a 
INFO [10-30|17:37:55.432] NewChannel tokenNetwork=3b5a,token=f012,participant1=fb07,participant2=e5a8 
INFO [10-30|17:37:55.437] NewChannel tokenNetwork=3b5a,token=f012,participant1=fb07,participant2=e011 
INFO [10-30|17:37:55.441] NewChannel tokenNetwork=3b5a,token=f012,participant1=e5a8,participant2=e011 
INFO [10-30|17:37:55.453] NewChannel tokenNetwork=3b5a,token=f012,participant1=fb07,participant2=d8d7 
INFO [10-30|17:37:55.456] NewChannel tokenNetwork=3b5a,token=f012,participant1=e5a8,participant2=d8d7 
ERROR[10-30|17:37:56.424] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
ERROR[10-30|17:37:57.424] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 
ERROR[10-30|17:37:58.424] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address 

错误总结

1,tyring to reconnect geth

image.png

解决方案:查看启动spectrum的时候,没有启动HTTP endpoint opened的18545和webSocket的服务。

image
2,启动smartRaiden时候,cannot create or open db,makesure you have write permission
image

解决方案:1,清空spectrum的节点datadir缓存数据,2,关闭terminal,3,重新启动spectrum和smartRaiden。

3,spectrum一直卡着没动
image

解决方案:情况的spectrum节点缓存datadir里面的数据,每次启动spectrum他都会同步节点数据。

4,没有链上公链

image.png

解决方案:查看spectrum公链运行情况。

5,ERROR[10-30|17:39:50.463] listen udp 192.168.0.145:40001 error listen udp 192.168.0.145:40001: bind: cannot assign requested address

屏幕快照 2018年10月31日 下午12.01.52.png

解决方案:
--listen-address=192.168.0.145:40001换成0.0.0.0:40001
--eth-rpc-endpoint 这个参数是是smc节点的ip,如果是本地节点ws://0.0.0.0:18546是可以的,如果部署在服务器上,缓存运行smc的ip既可。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:rectinajh

查看原文:Linux或者Mac环境安装Photon network

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1520 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏