佛薩奇2.0開發升級版,metaforce佛薩奇2.0系統開發(開發方案及詳細)

xiaofufu發表於2023-02-21

 簡單來說這個佛薩奇FORGE原力專案基於幣安鏈開發的智慧合約dapp,公開透明,100%公開開源,玩家進出都是BUSD,專案方也無法篡改,合約永續執行。什麼是佛薩奇原力FORGE?佛薩奇原力FORCE是在幣安鏈上部署的一個智慧合約BSC幣安智慧鏈是基於全球第一交易所幣安網的加密貨幣數字錢包幣安智慧鏈公鏈開發的一個獨立公鏈。




  FORGE迴圈儀中使用的矩陣大小為3×1和2×2。3×1矩陣本質上很簡單,只需要填充三個位置即可。2×2矩陣從第一層的兩個位置開始,然後擴充套件到第二層的四個位置。職位透過直接和間接招募Forsage會員來填補。一旦矩陣中的所有位置都被填滿,就啟用迴圈佣金。從矩陣出來的位置也將輸入相同大小的新矩陣。 

1.啟動SPV輕節點

  在spv/scripts目錄,執行start.sh指令碼,開發流程I35邏輯7O98開發O7I8 將會呼叫spv/build/release/bin目錄中的start.sh指令碼,啟動SPV輕節點。

  $./start.sh

  檢視程式是否存在

  $ps-ef|grep spv|grep-v grep501 82533 1 0 12:27AM ttys011 0:00.23./spv start-c../config/spv.yml

  檢視埠是否監聽

  $lsof-i:12345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME spv 82533 liukemeng 14u IPv4 0x321a94eae97e5edf 0t0 TCP localhost:12345(LISTEN)$lsof-i:12346 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME spv 85673 liukemeng 14u IPv4 0x425a94eae97e5edf 0t0 TCP localhost:12346(LISTEN)

  檢視日誌

  $tail-f../build/release/log/spv.log2021-06-23 00:28:02.318INFOserver/spv_server.go:88====Start SPV Server!====2021-06-23 00:28:02.340INFOmanager/state_manager.go:145[ChainId:chain1]----start chain listening and state manager!----2021-06-23 00:28:02.342INFOmanager/state_manager.go:176[ChainId:chain1]subscribe block success!2021-06-23 00:28:02.345INFOrpcserver/rpc_server.go:65 GRPC Server Listen on 127.0.0.1:123452021-06-23 00:28:02.345INFOwebserver/web_server.go:85 Web Server Listen on HTTP 127.0.0.1:123462021-06-23 00:28:12.414INFOmanager/block_manager.go:167[ChainId:chain1]spv has synced to the highest block!current local height:0,remote max height:0

  2.停止SPV輕節點

  在spv/scripts目錄,執行stop.sh指令碼,將會呼叫spv/build/release/bin目錄中的stop.sh指令碼,停止SPV輕節點。

  $./stop.sh

  3.停止SPV輕節點並清除data和log

  在spv/scripts目錄,執行stop.sh指令碼,並新增clean命令,將會呼叫spv/build/release/bin目錄中的stop.sh指令碼,停止SPV輕節點,並清除spv/build/release/data中的所有資料。

  $./stop.sh clean

  3.SPV模式獨立部署時,Client端透過grpc驗證交易有效性示例

  package usecaseimport("context""log""chainmaker.org/chainmaker/spv/v2/pb/api""google.golang.org/grpc")func useCase(){//1.構造Client conn,err:=grpc.Dial("127.0.0.1:12308",grpc.WithInsecure())if err!=nil{log.Fatal(err)return}client:=api.NewRpcProverClient(conn)//2.構造交易驗證資訊request:=&api.TxValidationRequest{ChainId:"chainId",//鏈Id BlockHeight:1,

  //交易所在區塊高度//Index:-1,//此版本未驗證該欄位,不需要填寫TxKey:"TxId",//交易Id ContractData:&api.ContractData{Name:"contractName",//合約名Method:"method",//方法名Version:"version",

  //合約版本Params:[]*api.KVPair{{Key:"argName1",Value:[]byte("argValue1")},//Key是所呼叫合約方法的引數名,Value是引數值{Key:"argName2",Value:[]byte("argValue2")},{Key:"argName3",Value:[]byte("argValue3")},},Extra:nil,//預留擴充套件欄位},Timeout:5000,//驗證超時時間Extra:nil,//預留擴充套件欄位}//3.驗證交易有效性response,err:=client.ValidTransaction(context.Background(),request)if err!=nil{log.Fatal(err)}if int32(response.Code)!=0{log.Fatal(err)}//4.使用者其他邏輯}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章