天天看點

【IPFS應用開發】安卓應用自治管理平台釋出1.目的2.食用方式3.配置說明4.安裝指令說明5.未完善的地方

安卓應用自治管理平台

  • 1.目的
  • 2.食用方式
  • 3.配置說明
  • 4.安裝指令說明
  • 5.未完善的地方

1.目的

1.特點:去中心化的應用下載下傳平台;去中心化的軟體更新機制;去中心化apk管理平台,使用ipns作為釋出密令。為Android應用軟體開發做好鋪墊。

2.成果

管理背景界面,界面長得醜了點,功能已經完成。

【IPFS應用開發】安卓應用自治管理平台釋出1.目的2.食用方式3.配置說明4.安裝指令說明5.未完善的地方

使用者掃描後的效果

【IPFS應用開發】安卓應用自治管理平台釋出1.目的2.食用方式3.配置說明4.安裝指令說明5.未完善的地方

2.食用方式

git位址:https://github.com/bill080307/ipfs_apk.git

在ubuntu18上運作

git clone https://github.com/bill080307/ipfs_apk.git
cd ipfs_apk/api
# 根據自己的情況填寫配置
vim config.json
# 安裝
./install.sh
           

3.配置說明

目錄結構

ipfs_apk/
├── admin        # 背景管理界面的前端VUE項目
├── api
│   ├── admin-api.py     # 背景API主程式
│   ├── config.json     # 背景API服務配置
│   ├── install.sh     # 安裝腳本
│   ├── ipfsapk.conf     # 背景網頁顯示 Nginx配置
│   ├── ipfsapk.service     #  背景API服務配置檔案
│   └── requirements.txt     # 背景API程式依賴庫
├── LICENSE
├── README.md
└── webui           # 前台下載下傳界面的前端VUE項目

15 directories, 36 files
           

config.json

{
  "projectName": "VideoShare",  # 項目名稱
  "service": {   # 背景服務綁定端口和參數
    "host": "127.0.0.1",
    "port": 5050,
    "workers": 1
  },
  "ipfsApi": "/ip4/172.16.7.1/tcp/5001",  # ipfs-api
  "ipfsGW": "http://172.16.0.60:8082/ipfs/:hash",  # ipfs-gateway
  "localStorage": "/data/",  # 本地儲存路徑,用于共享儲存,Filestore
  "StorageSubPath": "apk", # 本地儲存子路徑
  "redisCacheServer": [ # redis服務緩存位址,使用多個,必須配置一個,有效資料以第一個為準,配合ipns緩沖器使用:https://blog.csdn.net/weixin_43668031/article/details/100174147
    {"host": "172.16.0.60", "port": 6379}
  ],
  "uiTemplate": "QmQBQP2V8qo3VGXs8pZA685wB3gkbcmcdcEv2UwcUAJPWq" # 前端模闆位址,即webui編譯後的前端上傳至ipfs的結果,運作`./install.sh ui`自動替換
}
           

ipfsapk.conf

server {
       listen 81;
       server_name _;
       # 後端程式所放目錄,如修改,需要同步修改在install.sh中
       root /var/www/ipfsapk/;
       index index.html;

       location / {
               try_files $uri $uri/ =404;
       }
       # 後端API程式的代理設定,修改路徑需要同步修改到admin前端項目,修改背景服務綁定端口和參數需要在這裡同步修改
       location /api/ {
               proxy_set_header Host $http_host;
               proxy_pass http://127.0.0.1:5050/;
       }

}
           

ipfsapk.service

[Unit]
Description=ipfsapkapi
[Service]
# 背景API程式運作路徑,運作`./install.sh api` 自動替換
ExecStart=PYTHON3_SCRIPT
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
           

4.安裝指令說明

install.sh

子指令

./install.sh ui

編譯下載下傳界面,上傳到ipfs空間上,自動将前端的hash替換到config.json模闆中

./install.sh admin

編譯背景界面,放置到nginx目錄

./install.sh api

注冊ipfsapk服務,根據config.json服務ip和端口啟動api服務,預設為127.0.0.1:5050,反向代理至nginx裡,預設為為背景前端的/api/路徑。

注冊的服務名為ipfsapk

可以通過

systemctl status ipfsapk.service

檢視服務狀态

可以通過

systemctl start ipfsapk.service

開啟服務狀态

可以通過

systemctl stop ipfsapk.service

關閉服務狀态

./install.sh

以上項目全部運作

5.未完善的地方

1.ipns的釋出還沒有完善,ipns的釋出需要比較長的時間,打算在python中再拉起一個線程運作,無需傳回結果。

2.目前配置第一個redis伺服器來緩存ipfs的hash結果,配合之前做的ipns加速器,完成應用調試之類的任務完全沒問題。

3.關于apk的update方法,緩存請求較慢,并且會擷取到舊值,有待解決。

4.apk存放在本地路徑(共享挂載路徑)要求在ipfs節點上也挂載在ipfspath同級目錄下,使用Filestore來上傳到ipfs空間上,這樣可以節省很多磁盤資源。

5.adminUI僅有功能,不夠美觀。

6.上圖中二維碼均為樣例,無實際意義。釋出應用後在下載下傳界面的二維碼的作用是:截圖發朋友圈可以長按來擷取應用。

7.至少需要一個可以使用的ipfs的網關位址,以給使用者提供下載下傳服務。

繼續閱讀