تجميع داش كور

في حين يقدم داش ثنائي مستقر يبني على الموقع  و في جيتب, و المطورين في, العديد من المستخدمين سوف تكون مهتمة أيضا في بناء ثنائيات داش لأنفسهم. الأدلة التالية متاحة:

تصف هذه الأدلة كيفية إنشاء الإصدار الثابت الحالي. لإنشاء أحدث إصدار من فرع التطوير ، استبدل الأمر git clone الطبيعي بالأمر التالي عند السحب من GitHub

git clone https://github.com/dashpay/dash.git -b develop

لينكس

يصف هذا الدليل كيفية بناء محفظة داش كور بدون واجهة المستخدم الرسومية GUI من المصدر تحت لينكس يوبنتو. للحصول على دليل أكثر تفصيلاً ، انظر هنا. يهدف المحتوى الموجود في هذه الصفحة إلى تقديم دليل بسيط للتجميع العام للملفات الثنائية غير المحددة من الكود المصدري الثابت. سيتم استخدام تثبيت قياسي لنظام التشغيل لينكس يوبنتو 18.04 LTS كبيئة للبناء. نفترض أنك تعمل كمستخدم مع أذونات sudo. أولا إضافة المستودع الإضافي الضروري وتحديث جميع الحزم

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt update
sudo apt upgrade

الآن تثبيت التبعيات كما هو موضح في وثائق التثبيت

sudo apt install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils git libdb4.8-dev libdb4.8++-dev curl
sudo apt install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libzmq3-dev

اختياريًا ، قم بتثبيت تبعيات Qt إذا كنت تريد إنشاء واجهة المستخدم داش GUI

sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

تنزيل مستودع داش

git clone https://github.com/dashpay/dash.git

و بناء:

cd dash
./autogen.sh
./configure
make
make install

/usr/local/bin يحتوي الآن على الثنائيات داش المترجمة.

ماك

يمكن أن يتم تصميم داش للـ ماك إما باستخدام مترجم برمجي ضمن لينكس أو أصلاً تحت ماك.

لينكس عبر ترجمة

يصف هذا الدليل كيفية بناء محفظة داش كور من المصدر تحت لينكس يوبنتو. الغرض منه هو بمثابة دليل بسيط للتجميع العام للملفات الثنائية غير الحتمية من شفرة المصدر المستقرة. للحصول على دليل أكثر تفصيلاً ، انظر هنا. سيتم استخدام تثبيت قياسي لنظام التشغيل ليتكس يوبنتو 18.04 LTS كبيئة للبناء. نفترض أنك تعمل كمستخدم مع أذونات sudo. أولا إضافة المستودع الإضافي الضروري وتحديث جميع الحزم

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt update
sudo apt upgrade

الآن تثبيت التبعيات كما هو موضح في وثائق التثبيت

sudo apt install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils git libdb4.8-dev libdb4.8++-dev curl
sudo apt install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libzmq3-dev
sudo apt install ca-certificates curl g++ git-core pkg-config autoconf librsvg2-bin libtiff-tools libtool automake faketime bsdmainutils cmake imagemagick libcap-dev libz-dev libbz2-dev python python-dev python-setuptools fonts-tuffy p7zip-full sleuthkit

اختياريًا ، قم بتثبيت تبعيات Qt إذا كنت تريد إنشاء واجهة المستخدم داش GUI

sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

تنزيل مستودع داش

git clone https://github.com/dashpay/dash.git
cd dash

مطلوب نسخة من نظام التشغيل ماك SDK أثناء عملية الإنشاء. لتنزيل هذا ، استخدم قوقل غروم في بيئة سطح المكتب للانتقال إلى https://appleid.apple.com وإنشاء حساب Apple أو تسجيل الدخول إليه. ثم انتقل إلى https://developer.apple.com وافتح أدوات مطوري برامج غروم من القائمة المزيد من الأدوات -> الأدوات المطور انقر على علامة ,الشبكة ، ثم ارجع إلى نافذة المتصفح الرئيسية وانسخ في عنوان الرابط التالي:

https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg

إلغاء التنزيل بمجرد أن يبدأ ويعود إلى علامة الشبكة في الأدوات المطور. انقر بزر الماوس الأيمن على طلب الشبكة في أسفل القائمة المسمى Xcode_7.3.1.dmg وحدد نسخ -> نسخ باسم cURL (داش). الصق هذه السلسلة الطويلة من النص في وحدة لينكس ، وأضف -o Xcode_7.3.1.dmg في النهاية ، ثم اضغط على ادخل لبدء عملية التنزيل. بمجرد اكتماله ، قم باستخراج الملفات المطلوبة من صورة القرص كما يلي

contrib/macdeploy/extract-osx-sdk.sh
rm -rf 5.hfs MacOSX10.11.sdk
mkdir depends/SDKs
mv MacOSX10.11.sdk/ depends/SDKs/

و بناء:

make -C depends HOST=x86_64-apple-darwin11
./autogen.sh
./configure --prefix=`pwd`/depends/x86_64-apple-darwin11
make

~/dash/src يحتوي الآن على الثنائيات داش المترجمة ، و ~/dash/src/qt يحتوي على محفظة داش GUI

ماك الأصلية

يصف هذا الدليل كيفية بناء محفظة داش كةر من المصدر تحت ماك. الغرض منه هو بمثابة دليل بسيط للتجميع العام للملفات الثنائية غير الحتمية من شفرة المصدر المستقرة. للحصول على دليل أكثر تفصيلاً ، انظر هنا. سيتم استخدام تثبيت قياسي لنظام التشغيل ماك 10.13 High Sierra كبيئة للبناء. نفترض أنك تعمل كمستخدم مع sudo. أولاً ، افتح تطبيق Terminal وأدخل الأمر التالي لتثبيت الأدوات سطر الأوامر OS X

xcode-select --install

عندما تظهر النافذة المنبثقة ، انقر فوق تثبيت. ثم قم بتثبيت Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

تثبيت التبعيات

brew install automake berkeley-db4 libtool boost --c++11 miniupnpc openssl pkg-config protobuf qt libevent librsvg

استنساخ كود مصدر داش كور وتغيير إلى دليل داش

git clone https://github.com/dashpay/dash
cd dash

بناء داش كور. تكوين وبناء ثنائيات داش مقطوعة الرأس وكذلك واجهة المستخدم الرسومية (إذا تم العثور على كيو تي). يمكنك تعطيل إنشاء واجهة المستخدم الرسومية بتمرير - بدون - gui لتهيئة

./autogen.sh
./configure
make

يوصى ببناء وتشغيل اختبارات الوحدة

make check

يمكنك أيضًا إنشاء .dmg الذي يحتوي على حزمة .app (اختياري)

make deploy

داش كور متاح على ./src/dashd.

ويندوز

يصف هذا الدليل كيفية إنشاء محفظة داش كور من المصدر لنظام ويندوز 64 بت. يستخدم معظم المطورين الترجمة المتقاطعة من لينكس لإنشاء ملفات تنفيذية لـ ويندوز. يهدف المحتوى الموجود في هذه الصفحة إلى تقديم دليل بسيط للتجميع العام للملفات الثنائية غير المحددة من الكود المصدري الثابت. للحصول على دليل أكثر تفصيلاً ، انظر هنا. سيتم استخدام تثبيت قياسي لنظام التشغيل لينكس يوبنتو 18.04 LTS كبيئة للبناء. نفترض أنك تعمل كمستخدم مع أذونات sudo. أولا إضافة المستودع الإضافي الضروري وتحديث جميع الحزم

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt update
sudo apt upgrade

الآن تثبيت التبعيات كما هو موضح في وثائق التثبيت

sudo apt install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils git libdb4.8-dev libdb4.8++-dev curl
sudo apt install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libzmq3-dev
sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev

اختياريًا ، قم بتثبيت تبعيات Qt إذا كنت تريد إنشاء واجهة المستخدم داش GUI

sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

تنزيل مستودع داش

git clone https://github.com/dashpay/dash.git

بناء وربط نظام يعتمد

cd dash/depends
make HOST=x86_64-w64-mingw32
cd ..
sudo update-alternatives --set x86_64-w64-mingw32-gcc  /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++  /usr/bin/x86_64-w64-mingw32-g++-posix

و بناء:

./autogen.sh
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
make

~/dash/src يحتوي الآن على الثنائيات داش المترجمة ، و ~/dash/src/qt يحتوي على محفظة داش GUI

Gitian

Gitian هي عملية البناء الحتمية التي تُستخدم لإنشاء الملفات التنفيذية الأساسية في داش. ويوفر طريقة للتأكد بشكل معقول من أن الملفات التنفيذية مبنية بالفعل من المصدر على GitHub. كما أنه يضمن أن نفس التبعيات التي تم اختبارها قد تم استخدامها وتم دمجها بشكل ثابت في الملف القابل للتنفيذ. يقوم المطورون المتعددون ببناء الشفرة المصدرية باتباع واصف محدد ("وصفة") ، وتوقيع النتيجة مشفرًا ، وتحميل التوقيع الناتج. تتم مقارنة هذه النتائج وفقط في حالة تطابقها ، يتم قبول الإنشاء وتحميله إلى dash.org.

هناك حاجة لمزيد من بناة Gitian مستقلة ، وهذا هو السبب في وجود هذا الدليل. يفضل استخدام هذه الخطوات بنفسك بدلاً من استخدام صورة VM لشخص آخر لتجنب "تلويث" البنية

إعداد بيئة المضيف

من المعروف أن Gitian builds تعمل على Debian 8.x. إذا كان جهازك يعمل بالفعل على هذا النظام ، يمكنك تنفيذ Gitian على الأجهزة الفعلية. بدلاً من ذلك ، يمكنك تثبيته في جهاز ظاهري. اتبع الدليل ل اعدادات ماسترنود، تحديد صورة Debian 8.x أثناء عملية التثبيت وتسمية المستخدم غير الجذر gitianuser. سيؤدي اختيار VPS مع معالجين إلى تسريع عملية الإنشاء بشكل كبير. إذا لم تتمكن من تسجيل الدخول إلى VPS عبر SSH كجذر ، فقم بالوصول إلى المحطة وإصدار الأمر التالي:

sed -i 's/^PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
/etc/init.d/ssh restart

تسجيل الدخول إلى البيئة الجديدة الخاصة بك عن طريق SSH كجذر. قم بإعداد التبعيات أولاً عن طريق لصق ما يلي في terminal

apt-get install git ruby sudo apt-cacher-ng qemu-utils debootstrap lxc python-cheetah parted kpartx bridge-utils make ubuntu-archive-keyring curl
adduser gitianuser sudo

ثم قم بإعداد LXC والباقي مع ما يلي ، وهو مزيج معقد من الإعدادات والحلول:

# the version of lxc-start in Debian needs to run as root, so make sure
# that the build script can execute it without providing a password
echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-start" > /etc/sudoers.d/gitian-lxc
echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-execute" >> /etc/sudoers.d/gitian-lxc
# make /etc/rc.local script that sets up bridge between guest and host
echo '#!/bin/sh -e' > /etc/rc.local
echo 'brctl addbr br0' >> /etc/rc.local
echo 'ifconfig br0 10.0.3.2/24 up' >> /etc/rc.local
echo 'iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE' >> /etc/rc.local
echo 'echo 1 > /proc/sys/net/ipv4/ip_forward' >> /etc/rc.local
echo 'exit 0' >> /etc/rc.local
# make sure that USE_LXC is always set when logging in as gitianuser,
# and configure LXC IP addresses
echo 'export USE_LXC=1' >> /home/gitianuser/.profile
echo 'export GITIAN_HOST_IP=10.0.3.2' >> /home/gitianuser/.profile
echo 'export LXC_GUEST_IP=10.0.3.5' >> /home/gitianuser/.profile
reboot

في النهاية ، يتم إعادة تمهيد Debian للتأكد من أن التغييرات سارية المفعول. إعادة تسجيل الدخول باسم المستخدم gitianuser التي تم إنشاؤها أثناء التثبيت. سيتم تنفيذ بقية الخطوات في هذا الدليل كهذا المستخدم.

لا توجد حزمة python-vm-builder في دبيان ، لذلك نحن بحاجة إلى تثبيتها من المصدر أنفسنا

wget http://archive.ubuntu.com/ubuntu/pool/universe/v/vm-builder/vm-builder_0.12.4+bzr494.orig.tar.gz
echo "76cbf8c52c391160b2641e7120dbade5afded713afaa6032f733a261f13e6a8e  vm-builder_0.12.4+bzr494.orig.tar.gz" | sha256sum -c
# (verification -- must return OK)
tar -zxvf vm-builder_0.12.4+bzr494.orig.tar.gz
cd vm-builder-0.12.4+bzr494
sudo python setup.py install
cd ..

إعداد البيئة وتجميعها

استنساخ مستودع داش كور إلى دليل المنزل الخاص بك

git clone https://github.com/dashpay/dash.git

ثم قم بإنشاء ملف البرنامج النصي

nano dash/contrib/gitian-build.sh

ثم قم بلصق البرنامج النصي التالي في مكانه (سيكون هذا تلقائيًا إذا / عندما يتم سحب البرنامج النصي إلى داش كور)

https://github.com/strophy/dash/blob/master/contrib/gitian-build.sh

احفظ الملف واضبطه للتنفيذ

sudo chmod +x dash/contrib/gitian-build.sh

قم بإعداد البيئة ، واستبدل الاسم والإصدار باسمك وإصدارك المستهدف:

dash/contrib/gitian-build.sh --setup strophy 0.12.1.5

تشغيل البرنامج النصي التصنيف

dash/contrib/gitian-build.sh --build strophy 0.12.1.5

سيقوم النظام الخاص بك ببناء كل الاعتماديات و داش كور من الصفر لمنصات ويندوز و لينكس (ماك إذا تم تثبيت التبعيات وفقًا لـ هذه التعليمات). وهذا يمكن أن يستغرق بعض الوقت. عند الاكتمال ، سترى المجموع الاختباري SHA256 ، والذي يمكنك مقارنته مع التجزئة المتاحة على موقع داش. وبهذه الطريقة ، يمكنك التأكد من تشغيلك للبنود الأصلية وغير المضغوطة من الرمز كما هو موجود على GitHub