При запуске bitcoind я продолжаю получать - boost::filesystem::space: операция не разрешена

  • Программное обеспечение биткойн-клиента и номер версии: Bitcoin Core 0.15.1
  • Операционная система: Ubuntu 16.04
  • Аппаратные характеристики системы: ЦП Intel Core с тактовой частотой 2,4 ГГц, 16 ГБ ОЗУ и 750 ГБ свободного места на жестком диске.
  • Описание проблемы: bitcoind отказывается запускаться. Продолжайте получать ту же ошибку снова и снова.

У меня есть SDD на 250 ГБ и жесткий диск на 750 ГБ, которые я использую в качестве хранилища на моем Ubuntu 16.04. У меня уже несколько недель работает полный биткойн-узел, который я использую только для практики взаимодействия с биткойн-клиентом. Несколько дней назад я включил свой узел и получил это

ИСКЛЮЧЕНИЕ: N5boost10filesystem16filesystem_errorE
boost::filesystem::space: операция не разрешена биткойн в AppInit()

Ошибка: Ошибка: Произошла фатальная внутренняя ошибка, подробности см. в debug.log Ошибка: Ошибка: Произошла фатальная внутренняя ошибка, подробности см. в debug.log

Я понятия не имею, как действовать дальше. Я удалил биткойн-ядро из своей системы, переформатировал свой накопитель, переустановил Ubuntu и просто часами пытался отладить эту чертову проблему. Я отправил сообщение на несколько досок объявлений и не получил буквально никаких полезных ответов. Мой жесткий диск для хранения находится в папке мультимедиа, для которой я изменил разрешения для использования любым пользователем. Время от времени биткойн запускается и просто остается на нулевом блоке... Я очень расстроен и, откровенно говоря, нахожусь на грани перехода к другим проектам. Любая помощь мне будет принята с благодарностью.

Скриншот проблемы:введите описание изображения здесь

отладка.лог:

2017-12-02 05:15:59 Bitcoin version v0.15.1
2017-12-02 05:15:59 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2017-12-02 05:15:59 Assuming ancestors of block 0000000000000000003b9ce759c2a087d52abc4266f8f4ebd6d768b89defa50a have valid signatures.
2017-12-02 05:15:59 Setting nMinimumChainWork=000000000000000000000000000000000000000000723d3581fe1bd55373540a
2017-12-02 05:15:59 Using the 'standard' SHA256 implementation
2017-12-02 05:15:59 Using RdRand as an additional entropy source
2017-12-02 05:15:59 Default data directory /home/ancientevil/.bitcoin
2017-12-02 05:15:59 Using data directory 
2017-12-02 05:15:59 Using config file bitcoin.conf
2017-12-02 05:15:59 Using at most 125 automatic connections (1024 file descriptors available)
2017-12-02 05:15:59 Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
2017-12-02 05:15:59 Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
2017-12-02 05:15:59 Using 4 threads for script verification
2017-12-02 05:15:59 scheduler thread start
2017-12-02 05:15:59 HTTP: creating work queue of depth 16
2017-12-02 05:15:59 Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcuser for rpcauth auth generation.
2017-12-02 05:15:59 HTTP: starting 4 worker threads
2017-12-02 05:15:59 init message: Verifying wallet(s)...
2017-12-02 05:15:59 Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
2017-12-02 05:15:59 Using wallet wallet.dat
2017-12-02 05:15:59 CDBEnv::Open: LogDir=database ErrorFile=db.log
2017-12-02 05:15:59 Cache configuration:
2017-12-02 05:15:59 * Using 56.2MiB for block index database
2017-12-02 05:15:59 * Using 8.0MiB for chain state database
2017-12-02 05:15:59 * Using 385.8MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space)
2017-12-02 05:15:59 init message: Loading block index...
2017-12-02 05:15:59 Opening LevelDB in blocks/index
2017-12-02 05:15:59 Opened LevelDB successfully
2017-12-02 05:15:59 Using obfuscation key for blocks/index: 0000000000000000
2017-12-02 05:15:59 LoadBlockIndexDB: last block file = 0
2017-12-02 05:15:59 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01)
2017-12-02 05:15:59 Checking all blk files are present...
2017-12-02 05:15:59 LoadBlockIndexDB: transaction index enabled
2017-12-02 05:15:59 Initializing databases...
2017-12-02 05:15:59 Opening LevelDB in chainstate
2017-12-02 05:15:59 Opened LevelDB successfully
2017-12-02 05:15:59 Using obfuscation key for chainstate: fa63baf2491fc7eb
2017-12-02 05:15:59 init message: Rewinding blocks...
2017-12-02 05:15:59  block index              22ms
2017-12-02 05:15:59 init message: Loading wallet...
2017-12-02 05:15:59 nFileVersion = 150100
2017-12-02 05:15:59 Keys: 2002 plaintext, 0 encrypted, 2002 w/ metadata, 2002 total
2017-12-02 05:15:59  wallet                   64ms
2017-12-02 05:15:59 setKeyPool.size() = 2000
2017-12-02 05:15:59 mapWallet.size() = 0
2017-12-02 05:15:59 mapAddressBook.size() = 1
2017-12-02 05:15:59 

************************
EXCEPTION: N5boost10filesystem16filesystem_errorE       
boost::filesystem::space: Operation not permitted       
bitcoin in AppInit()       

2017-12-02 05:15:59 scheduler thread interrupt
2017-12-02 05:15:59 Shutdown: In progress...
2017-12-02 05:15:59 *** System error while flushing: boost::filesystem::space: Operation not permitted
2017-12-02 05:15:59 Error: Error: A fatal internal error occurred, see debug.log for details
2017-12-02 05:15:59 *** System error while flushing: boost::filesystem::space: Operation not permitted
2017-12-02 05:15:59 Error: Error: A fatal internal error occurred, see debug.log for details
2017-12-02 05:15:59 Shutdown: done

биткони.конф:

##
## bitcoin.conf configuration file. Lines beginning with # are comments.
##




datadir=/media/ancientevil/Storage/BitcoinBlocks
txindex=1


# Network-related settings:

# Run on the test network instead of the real bitcoin network.
#testnet=0

# Run a regression test network
#regtest=0

# Connect via a SOCKS5 proxy
#proxy=127.0.0.1:9050

# Bind to given address and always listen on it. Use [host]:port notation for IPv6
#bind=<addr>

# Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6
#whitebind=<addr>

##############################################################
##            Quick Primer on addnode vs connect            ##
##  Let's say for instance you use addnode=4.2.2.4          ##
##  addnode will connect you to and tell you about the      ##
##    nodes connected to 4.2.2.4.  In addition it will tell ##
##    the other nodes connected to it that you exist so     ##
##    they can connect to you.                              ##
##  connect will not do the above when you 'connect' to it. ##
##    It will *only* connect you to 4.2.2.4 and no one else.##
##                                                          ##
##  So if you're behind a firewall, or have other problems  ##
##  finding nodes, add some using 'addnode'.                ##
##                                                          ##
##  If you want to stay private, use 'connect' to only      ##
##  connect to "trusted" nodes.                             ##
##                                                          ##
##  If you run multiple nodes on a LAN, there's no need for ##
##  all of them to open lots of connections.  Instead       ##
##  'connect' them all to one node that is port forwarded   ##
##  and has lots of connections.                            ##
##       Thanks goes to [Noodle] on Freenode.               ##
##############################################################

# Use as many addnode= settings as you like to connect to specific peers
#addnode=69.164.218.197
#addnode=10.0.0.2:8333

# Alternatively use as many connect= settings as you like to connect ONLY to specific peers
#connect=69.164.218.197
#connect=10.0.0.1:8333

# Listening mode, enabled by default except when 'connect' is being used
#listen=1

# Maximum number of inbound+outbound connections.
#maxconnections=

#
# JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
#

# server=1 tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands
server=1

# Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6.
# This option can be specified multiple times (default: bind to all interfaces)
#rpcbind=<addr>

# If no rpcpassword is set, rpc cookie auth is sought. The default `-rpccookiefile` name
# is .cookie and found in the `-datadir` being used for bitcoind. This option is typically used
# when the server and client are run as the same user.
#
# If not, you must set rpcuser and rpcpassword to secure the JSON-RPC api. The first
# method(DEPRECATED) is to set this pair for the server and client:
rpcuser=rpcUser
rpcpassword=WITHHELD

#
# The second method `rpcauth` can be added to server startup argument. It is set at intialization time
# using the output from the script in share/rpcuser/rpcuser.py after providing a username:
#
# ./share/rpcuser/rpcuser.py alice
# String to be appended to bitcoin.conf:
# rpcauth=alice:f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae
# Your password:
# DONT_USE_THIS_YOU_WILL_GET_ROBBED_8ak1gI25KFTvjovL3gAM967mies3E=
#
# On client-side, you add the normal user/password pair to send commands:
#rpcuser=alice
#rpcpassword=DONT_USE_THIS_YOU_WILL_GET_ROBBED_8ak1gI25KFTvjovL3gAM967mies3E=
#
# You can even add multiple entries of these to the server conf file, and client can use any of them:
# rpcauth=bob:b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99

# How many seconds bitcoin will wait for a complete RPC HTTP request.
# after the HTTP connection is established. 
rpcclienttimeout=6

# By default, only RPC connections from localhost are allowed.
# Specify as many rpcallowip= settings as you like to allow connections from other hosts,
# either as a single IPv4/IPv6 or with a subnet specification.

# NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED,
# because the rpcpassword is transmitted over the network unencrypted.

# server=1 tells Bitcoin-Qt to accept JSON-RPC commands.
# it is also read by bitcoind to determine if RPC should be enabled 
#rpcallowip=10.1.1.34/255.255.255.0
#rpcallowip=1.2.3.4/24
#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96

# Listen for RPC connections on this TCP port:
rpcport=8332

# You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
# running on another host using this option:
rpcconnect=127.0.0.1

# Create transactions that have enough fees so they are likely to begin confirmation within n blocks (default: 6).
# This setting is over-ridden by the -paytxfee option.
#txconfirmtarget=n

# Miscellaneous options

# Pre-generate this many public/private key pairs, so wallet backups will be valid for
# both prior transactions and several dozen future transactions.
#keypool=100

# Pay an optional transaction fee every time you send bitcoins.  Transactions with fees
# are more likely than free transactions to be included in generated blocks, so may
# be validated sooner.
#paytxfee=0.00

# Enable pruning to reduce storage requirements by deleting old blocks. 
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB. 
#prune=550

# User interface options

# Start Bitcoin minimized
#min=1

# Minimize to the system tray
#minimizetotray=1
Каковы разрешения для /media/ancientevil/Storage/BitcoinBlocksвключения всех промежуточных каталогов? Похоже, что у Bitcoin-Core нет прав на чтение или выполнение вашего файла datadir. В противном случае, каков результат df -hдля этого каталога?
Разрешение для /media и всех файлов/папок внутри доступно для чтения/записи для всех.
Используемый размер файловой системы Доступно Использование % Установлено на udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 9.5M 1.6G 1% /run /dev/mapper/ubuntu--vg-root 204G 40G 154G 21% / tmpfs 7.8G 188M 7.6G 3% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sdb2 473M 126M 323M 28% /boot /dev/sdb1 511M 3.4M 508M 1% /boot/efi /dev/sda1 688G 20G 634G 3% /media/Storage tmpfs 1.6G 80K 1.6G 1% /run/user /1000
Кроме того, что произойдет, если вы не установите datadirи не разрешите ему использовать местоположение по умолчанию?
Похоже, ваш диск смонтирован в /media/Storage/, но для вашего каталога данных установлено значение /media/ancientevil~. Что df -h /media/ancientevil/Storage/BitcoinBlocksпроизводит?
О, извините, я изменил свой каталог данных с момента последнего сообщения. Мой каталог данных=/media/Storage/Blocks
Когда я комментирую свой datadir bitcoind -reindex запускается, но он застрял на блоке 0
df -h /media/Storage Используемый размер файловой системы Доступно Использование % Установлено на /dev/sda1 688G 20G 634G 3% /media/Storage
df -h /media/Storage/Blocks? ls -lhd /media/Storage/Blocks?
ls -lhd /media/Storage/Blocks - drwxrwxr-x 2 Ancientevil Ancientevil 4.0K 4 дек. 16:23 /media/Storage/Blocks df -h /media/Storage/Blocks Используемый размер файловой системы Доступно Использование % Установлено на /dev/sda1 688G 20G 634G 3% /носитель/хранилище

Ответы (2)

Мне удалось воспроизвести ваше сообщение об ошибке как на 0.15.1, так и на текущем мастере (c17f11f7b) со следующим bitcoin.conf:

datadir=/home/nick/.bitcoin2

...где /home/nick/.bitcoin2каталог, которого не существует.

Мой журнал ошибок:

$ ./src/bitcoind -reindex


************************
EXCEPTION: N5boost10filesystem16filesystem_errorE       
boost::filesystem::space: Operation not permitted       
bitcoin in AppInit()       

Error: Error: A fatal internal error occurred, see debug.log for details
Error: Error: A fatal internal error occurred, see debug.log for details

Когда это происходит, биткойн отправляет файл debug.log в мой рабочий каталог, а не в каталог данных.

Исходя из этого, я думаю, что вы столкнулись с той же проблемой.

Можете ли вы перепроверить, что ваш каталог данных является существующим каталогом?

Я тоже так подозревал, но мы подтвердили в комментариях к вопросу, что каталог существует.
Да, мой каталог определенно существует. Это так странно, что мой биткойн-клиент работает так же хорошо, как я его настроил.

Проблема в том, что вы указываете каталог данных в файле bitcoin.conf. Вы не должны этого делать, так как это может привести к странному поведению, особенно потому, что файл bitocin.conf должен находиться в каталоге данных. Вместо того, чтобы указывать его там, вы должны указать его как часть команды для запуска Bitcoin Core.

Разве bitcoin.conf не должен находиться в ./bitcoin? Итак, вы предлагаете поместить мой файл bitcoin.conf туда, где находится мое хранилище, и просто запустить биткойн следующим образом $ bitcoind -datadir=absolutatePath ?
Предполагается, что файл bitcoin.conf находится в каталоге данных Bitcoin Core. Это не обязательно должно быть в ~/.bitcoin, и не должно быть, если ~/.bitcoin не является вашим каталогом данных (что по умолчанию). Да, я предлагаю вам начать биткойн именно так.