The dev got scolded by his parents for not doing his homework and now he's grounded for a week without internet access
Quite funny, I was going to my nephew's place.... it was hell
EDIT: Watching https://www.youtube.com/watch?v=KmPEFDujoF8
It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
USE_UPNP:=0
USE_WALLET:=1
LINK:=$(CXX)
ARCH:=$(system lscpu | head -n 1 | awk '{print $2}')
DEFS += -DBOOST_SPIRIT_THREADSAFE
DEFS += -DUSE_SECP256K1
DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
LMODE = dynamic
LMODE2 = dynamic
ifdef STATIC
LMODE = static
ifeq (${STATIC}, all)
LMODE2 = static
endif
endif
LIBS += \
-Wl,-B$(LMODE) \
-l secp256k1
# for boost 1.37, add -mt to the boost libraries
LIBS += \
-Wl,-B$(LMODE) \
-l boost_system$(BOOST_LIB_SUFFIX) \
-l boost_filesystem$(BOOST_LIB_SUFFIX) \
-l boost_program_options$(BOOST_LIB_SUFFIX) \
-l boost_thread$(BOOST_LIB_SUFFIX) \
-l db_cxx$(BDB_LIB_SUFFIX) \
-l ssl \
-l gmp \
-l crypto
ifndef USE_UPNP
override USE_UPNP = -
endif
ifneq (${USE_UPNP}, -)
LIBS += -l miniupnpc
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif
LIBS+= \
-Wl,-B$(LMODE2) \
-l z \
-l dl \
-l pthread
# Hardening
# Make some classes of vulnerabilities unexploitable in case one is discovered.
#
# This is a workaround for Ubuntu bug #691722, the default -fstack-protector causes
# -fstack-protector-all to be ignored unless -fno-stack-protector is used first.
# see: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/691722
HARDENING=-fno-stack-protector
# Stack Canaries
# Put numbers at the beginning of each stack frame and check that they are the same.
# If a stack buffer if overflowed, it writes over the canary number and then on return
# when that number is checked, it won't be the same and the program will exit with
# a "Stack smashing detected" error instead of being exploited.
HARDENING+=-fstack-protector-all -Wstack-protector
# Make some important things such as the global offset table read only as soon as
# the dynamic linker is finished building it. This will prevent overwriting of addresses
# which would later be jumped to.
LDHARDENING+=-Wl,-z,relro -Wl,-z,now
# Build position independent code to take advantage of Address Space Layout Randomization
# offered by some kernels.
# see doc/build-unix.txt for more information.
ifdef PIE
HARDENING+=-fPIE
LDHARDENING+=-pie
endif
# -D_FORTIFY_SOURCE=2 does some checking for potentially exploitable code patterns in
# the source such overflowing a statically defined buffer.
HARDENING+=-D_FORTIFY_SOURCE=2
#
DEBUGFLAGS=-g
ifeq (${ARCH}, i686)
EXT_OPTIONS=-msse2
endif
# CXXFLAGS can be specified on the make command line, so we use xCXXFLAGS that only
# adds some defaults in front. Unfortunately, CXXFLAGS=... $(CXXFLAGS) does not work.
xCXXFLAGS=-O2 $(EXT_OPTIONS) -pthread -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter \
$(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)
# LDFLAGS can be specified on the make command line, so we use xLDFLAGS that only
# adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work.
xLDFLAGS=$(LDHARDENING) $(LDFLAGS)
OBJS= \
obj/alert.o \
obj/cleanse.o \
obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
obj/addrman.o \
obj/base58.o \
obj/crypter.o \
obj/eckey.o \
obj/key.o \
obj/init.o \
obj/fantomd.o \
obj/keystore.o \
obj/core.o \
obj/main.o \
obj/net.o \
obj/protocol.o \
obj/rpcclient.o \
obj/rpcprotocol.o \
obj/rpcserver.o \
obj/rpcmisc.o \
obj/rpcnet.o \
obj/rpcblockchain.o \
obj/rpcrawtransaction.o \
obj/rpcsmessage.o \
obj/timedata.o \
obj/script.o \
obj/sync.o \
obj/txmempool.o \
obj/util.o \
obj/hash.o \
obj/noui.o \
obj/kernel.o \
obj/pbkdf2.o \
obj/scrypt.o \
obj/scrypt-arm.o \
obj/scrypt-x86.o \
obj/scrypt-x86_64.o \
obj/chainparams.o \
obj/stealth.o \
obj/activeblanknode.o \
obj/zerosend.o \
obj/zerosend-relay.o \
obj/eccryptoverify.o \
obj/instantx.o \
obj/blanknodeconfig.o \
obj/blanknodeman.o \
obj/blanknode.o \
obj/blanknode-payments.o \
obj/blanknode-pos.o \
obj/rpczerosend.o \
obj/spork.o \
obj/crypto/hmac_sha256.o \
obj/crypto/hmac_sha512.o \
obj/crypto/rfc6979_hmac_sha256.o \
obj/crypto/ripemd160.o \
obj/crypto/sha1.o \
obj/crypto/sha256.o \
obj/crypto/sha512.o \
obj/smessage.o \
obj/rpcmarket.o \
obj/market.o \
obj/crypto/hash/deps/aes_helper.o \
obj/crypto/hash/deps/echo.o \
obj/crypto/hash/deps/shavite.o \
obj/crypto/hash/deps/simd.o \
obj/crypto/hash/deps/blake.o\
obj/crypto/hash/deps/bmw.o\
obj/crypto/hash/deps/groestl.o\
obj/crypto/hash/deps/jh.o\
obj/crypto/hash/deps/keccak.o\
obj/crypto/hash/deps/skein.o \
obj/crypto/hash/deps/hamsi.o \
obj/crypto/hash/deps/fugue.o \
obj/crypto/hash/deps/shabal.o \
obj/crypto/hash/deps/whirlpool.o \
obj/crypto/hash/deps/sha2big.o \
obj/crypto/hash/deps/haval.o \
obj/crypto/hash/velvetmath.o
ifdef USE_NATIVE_I2P
OBJS += obj/i2p.o
OBJS += obj/i2psam.o
endif
ifeq (${USE_WALLET}, 1)
DEFS += -DENABLE_WALLET
OBJS += \
obj/db.o \
obj/miner.o \
obj/rpcdump.o \
obj/rpcmining.o \
obj/rpcwallet.o \
obj/wallet.o \
obj/walletdb.o
endif
all: fantomd
LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
OBJS += obj/txdb-leveldb.o
leveldb/libleveldb.a:
@echo "Building LevelDB ..."; cd leveldb; make libleveldb.a libmemenv.a; cd ..;
obj/txdb-leveldb.o: leveldb/libleveldb.a
# auto-generated dependencies:
-include obj/*.P
obj/build.h: FORCE
/bin/sh ../share/genbuild.sh obj/build.h
version.cpp: obj/build.h
DEFS += -DHAVE_BUILD_INFO
obj/scrypt-x86.o: scrypt-x86.S
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
obj/scrypt-x86_64.o: scrypt-x86_64.S
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
obj/scrypt-arm.o: scrypt-arm.S
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
obj/%.o: %.cpp
$(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
rm -f $(@:%.o=%.d)
obj/%.o: %.c
$(CXX) -c $(xCXXFLAGS) -fpermissive -MMD -MF $(@:%.o=%.d) -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
rm -f $(@:%.o=%.d)
fantomd: $(OBJS:obj/%=obj/%)
$(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
clean:
-rm -f fantomd
-rm -f obj/*.o
-rm -f obj/*.P
-rm -f obj/build.h
FORCE: