ipfs mesh implementation
This commit is contained in:
parent
2f18dec9a3
commit
1d994359ec
|
@ -201,7 +201,74 @@ function configure_firewall_for_ipfs {
|
||||||
echo 'configure_firewall_for_ipfs' >> $COMPLETION_FILE
|
echo 'configure_firewall_for_ipfs' >> $COMPLETION_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mesh_install_ipfs_js {
|
||||||
|
if grep -Fxq "mesh_install_ipfs_js" $COMPLETION_FILE; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
chroot ${rootdir} apt-get -y install npm
|
||||||
|
chroot ${rootdir} apt-get -y install libpam0g-dev fuse
|
||||||
|
|
||||||
|
chroot ${rootdir} npm cache clean -f
|
||||||
|
chroot ${rootdir} npm install -g n
|
||||||
|
chroot ${rootdir} n ${IPFS_NODE_VERSION}
|
||||||
|
chroot ${rootdir} npm install ronin@${IPFS_JS_RONIN_VERSION} --global
|
||||||
|
chroot ${rootdir} npm install ipfs@${IPFS_JS_VERSION} --global
|
||||||
|
|
||||||
|
IPFS_PATH=/usr/local/bin
|
||||||
|
|
||||||
|
if [ ! -f ${rootdir}$IPFS_PATH/jsipfs ]; then
|
||||||
|
exit 637292
|
||||||
|
fi
|
||||||
|
|
||||||
|
# directories to mount to
|
||||||
|
if [ ! -d ${rootdir}/ipfs ]; then
|
||||||
|
chroot ${rootdir} mkdir /ipfs
|
||||||
|
chroot ${rootdir} mkdir /ipns
|
||||||
|
chroot ${rootdir} chown $MY_USERNAME:$MY_USERNAME /ipfs
|
||||||
|
chroot ${rootdir} chown $MY_USERNAME:$MY_USERNAME /ipns
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ${rootdir}/etc/fuse.conf ]; then
|
||||||
|
chroot ${rootdir} chown $MY_USERNAME:$MY_USERNAME /etc/fuse.conf
|
||||||
|
fi
|
||||||
|
if [ -f ${rootdir}/dev/fuse ]; then
|
||||||
|
chroot ${rootdir} chown $MY_USERNAME:$MY_USERNAME /dev/fuse
|
||||||
|
fi
|
||||||
|
|
||||||
|
IPFS_DAEMON_NAME=ipfs
|
||||||
|
IPFS_DAEMON_FILE=${rootdir}/etc/systemd/system/${IPFS_DAEMON_NAME}.service
|
||||||
|
echo '[Unit]' > $IPFS_DAEMON_FILE
|
||||||
|
echo 'Description=IPFS javascript daemon' >> $IPFS_DAEMON_FILE
|
||||||
|
echo 'After=syslog.target' >> $IPFS_DAEMON_FILE
|
||||||
|
echo 'After=network.target' >> $IPFS_DAEMON_FILE
|
||||||
|
echo '' >> $IPFS_DAEMON_FILE
|
||||||
|
echo '[Service]' >> $IPFS_DAEMON_FILE
|
||||||
|
echo 'Type=simple' >> $IPFS_DAEMON_FILE
|
||||||
|
echo "User=$MY_USERNAME" >> $IPFS_DAEMON_FILE
|
||||||
|
echo "Group=$MY_USERNAME" >> $IPFS_DAEMON_FILE
|
||||||
|
echo "WorkingDirectory=/home/$MY_USERNAME" >> $IPFS_DAEMON_FILE
|
||||||
|
echo "ExecStart=${IPFS_PATH}/jsipfs daemon --mount" >> $IPFS_DAEMON_FILE
|
||||||
|
echo 'Restart=on-failure' >> $IPFS_DAEMON_FILE
|
||||||
|
echo "Environment=\"USER=$MY_USERNAME\" \"HOME=/home/$MY_USERNAME\"" >> $IPFS_DAEMON_FILE
|
||||||
|
echo '' >> $IPFS_DAEMON_FILE
|
||||||
|
echo '[Install]' >> $IPFS_DAEMON_FILE
|
||||||
|
echo 'WantedBy=multi-user.target' >> $IPFS_DAEMON_FILE
|
||||||
|
|
||||||
|
chroot ${rootdir} systemctl enable ${IPFS_DAEMON_NAME}
|
||||||
|
chroot ${rootdir} systemctl daemon-reload
|
||||||
|
|
||||||
|
function_check create_avahi_service
|
||||||
|
create_avahi_service ipfs "ipfs" udp $IPFS_PORT "IPFS_PEER_ID"
|
||||||
|
|
||||||
|
echo 'mesh install_ipfs_js' >> $COMPLETION_FILE
|
||||||
|
}
|
||||||
|
|
||||||
function install_ipfs_js {
|
function install_ipfs_js {
|
||||||
|
if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
||||||
|
mesh_install_ipfs_js
|
||||||
|
return
|
||||||
|
fi
|
||||||
if grep -Fxq "install_ipfs_js" $COMPLETION_FILE; then
|
if grep -Fxq "install_ipfs_js" $COMPLETION_FILE; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -550,6 +550,7 @@ initialise_mesh() {
|
||||||
install_tomb
|
install_tomb
|
||||||
install_tox
|
install_tox
|
||||||
install_web_server
|
install_web_server
|
||||||
|
install_ipfs
|
||||||
if [ $ENABLE_ZERONET ]; then
|
if [ $ENABLE_ZERONET ]; then
|
||||||
install_zeronet
|
install_zeronet
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -723,6 +723,36 @@ function setup_amnesic_data {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setup_ipfs {
|
||||||
|
IPFS_PATH=/usr/local/bin
|
||||||
|
IPFS_KEY_LENGTH=2048
|
||||||
|
|
||||||
|
su -c "$IPFS_PATH/jsipfs init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
|
||||||
|
if [ ! -d ${rootdir}/home/$MY_USERNAME/.ipfs ]; then
|
||||||
|
echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG
|
||||||
|
exit 7358
|
||||||
|
fi
|
||||||
|
|
||||||
|
TEMP_IPFS_ID=/tmp/ipfsid
|
||||||
|
su -c "echo $($IPFS_PATH/jsipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}') > $TEMP_IPFS_ID" - $MY_USERNAME
|
||||||
|
if [ ! -f $TEMP_IPFS_ID ]; then
|
||||||
|
echo 'No IPFS identity was created' >> $INSTALL_LOG
|
||||||
|
exit 37895
|
||||||
|
fi
|
||||||
|
|
||||||
|
IPFS_PEER_ID=$(cat $TEMP_IPFS_ID)
|
||||||
|
if [ ${#IPFS_PEER_ID} -lt 10 ]; then
|
||||||
|
echo 'Invalid IPFS peer ID' >> $INSTALL_LOG
|
||||||
|
echo "$IPFS_PEER_ID" >> $INSTALL_LOG
|
||||||
|
exit 74782
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO in avahi service for ipfs replace IPFS_PEER_ID
|
||||||
|
|
||||||
|
rm $TEMP_IPFS_ID
|
||||||
|
echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG
|
||||||
|
}
|
||||||
|
|
||||||
# whether to reset the identity
|
# whether to reset the identity
|
||||||
set_new_identity=
|
set_new_identity=
|
||||||
if [ $2 ]; then
|
if [ $2 ]; then
|
||||||
|
@ -778,6 +808,7 @@ if [ -f $MESH_INSTALL_SETUP ]; then
|
||||||
fi
|
fi
|
||||||
configure_toxcore
|
configure_toxcore
|
||||||
create_tox_user
|
create_tox_user
|
||||||
|
setup_ipfs
|
||||||
mesh_amnesic
|
mesh_amnesic
|
||||||
|
|
||||||
if [ ! -f $MESH_AMNESIC ]; then
|
if [ ! -f $MESH_AMNESIC ]; then
|
||||||
|
|
Loading…
Reference in New Issue