P2P 開發環境搭建

2021-09-25 02:48:25 字數 3307 閱讀 4231

1. 搭建tracker

go  get   ,安裝缺少的依賴包。

執行後,啟動

announce介面           udp:

2.  編譯boost

git clone

1. compile openssl

可能需要先安裝

copy nasm  ndisasm  c:\program files (x86)\microsoft visual studio 14.0\vc\bin

perl configure vc-win32

call ms\do_nasm

這裡可以提前修改ms目錄下的ntdll.mak檔案,把-w3修改為-w0:

cflag= /md /ox -dopenssl_threads  -ddso_win32 -w3 -gs0 -gy -nologo 

call "c:\program files (x86)\microsoft visual studio 14.0\vc\bin\vcvars32.bat"

編譯靜態版本的執行nmake -f ms/nt.mak       在 out32/先生成  openssl.exe libeay32.lib ssleay32.lib

編譯動態版本的執行nmake -f ms/ntdll.mak    在 out32dll   openssl.exe libeay32.dll,ssleay32.dll 

2. compile boost

download boost_1_66_0.zip

extract 

cd   boost_1_66_0

執行 boostrap.bat   在當前目錄下生成 b2.exe,bjam.exe,project-config.jam。

使用bjam編譯

#bjam --without-python --toolset=msvc-14.0 link=static runtime-link=shared  threading=multi debug release

bjam --without-python --toolset=msvc-14.0 link=shared runtime-link=shared  threading=multi debug release

3. 編譯 libtorrent c++版

set boost_build_path=e:\clib\boost_1_66_0

set boost_root=e:\clib\boost_1_66_0

下面兩行不確定有用?

set inclulde=e:\clib\libtorrent\libtorrent-libtorrent-1_2_1\include;e:\clib\openssl-1.0.2n\include\;e:\clib\boost_1_66_0\boost\;

set lib=e:\clib\openssl-1.0.2n\out32\;e:\clib\boost_1_66_0\stage\lib

#2 msvc-14.0 link=static runtime-link=static

b2 msvc-14.0 link=shared  runtime-link=shared

msvc.link.dll bin\msvc-14.0\debug\threading-multi\torrent.dll

正在建立庫 bin\msvc-14.0\debug\threading-multi\torrent.lib 和物件 bin\msvc-14.0\debug\threading-multi\torrent.exp

msvc.manifest.dll bin\msvc-14.0\debug\threading-multi\torrent.dll

4. 使用vs編譯 libtorrent example時,

設定相關的 boost libtorrent  include 路徑,匯入相關的 boost  libtorrent動態庫。

5. 編譯 libtorrent python

使用 libtorrent-rasterbar-1.2.1.tar 原始碼包

使用python36   32位

building using boost build (windows)

download and install visual c++ 2015 build tools

download boost libraries extract it to e:/libraries/boost_1_66_0 and create these environmental vars:

set path=%path%;e:\clib\boost_1_66_0/tools/build/src/engine/bin.ntx86/

set boost_build_path=e:\clib\boost_1_66_0\tools\build

set boost_root=e:\clib\boost_1_66_0

move the file user-config.jam from %boost_build_path%/example/ to %boost_build_path%/user-config.jamand add this at the end:

using msvc : 14.0 : : /std:c++11 ;   # 這個配置會報錯,改為  using msvc ;
(change the python path for yours)

如果出現  cannot determine the location of the vs common tools folder

在環境變數path中新增     c:\windows\system32

reference::  

cd  e:\clib\libtorrent\libtorrent-rasterbar-1.2.1\bindings\python/bindings/python

python setup.py build --bjam

生成  libtorrent.pyd

問題:使用libtorrent.pyd時發現,無法識別很多torrent引數,比如

'seed_mode': true, 'upload_mode':true

這是乙個 64位的python 2的加密庫

認識P2P,利用P2P

是peer to peer的縮寫 好象還看到過文章說是point to point,我也不清楚,網上的資料也不清楚,鬱悶 peer在英語裡有 地位 能力等 同等者 同事 和 夥伴 等意義。這樣一來,p2p也就可以理解為 夥伴對夥伴 的意思,或稱為對等聯網。目前人們認為其在加強網路上人的交流 檔案交換...

P2P網路模型

1 靜態配置模型 靜態配置模型是一種相對靜態而簡單的對等點定位模型。在該模型中,每個對等點都確切地知道存在於其p2p 網路中其它對等點的位置以及它們所提供的共享資源內容。缺點 網路無法應付不能預知的隨機事件和臨時變更,比如對等點隨機進入和退出網路。優點 整個網路在外部攻擊面前表現得很穩固。2 動態配...

P2P路由演算法

p2p路由演算法 資源定位方法 dht distributed hash table 演算法 思想 每乙份資源都由一組關鍵字標示,系統對其中的每乙個關鍵字進行hash,根據hash的結果確定該關鍵字由哪個使用者負責儲存,使用者搜尋的同時,用同樣的演算法計算每乙個字的hash,再根據hash知道該關鍵...