Giter Club home page Giter Club logo

aleth's People

Contributors

arkpar avatar axic avatar azawlocki avatar bobsummerwill avatar caktux avatar callendorph avatar chfast avatar chriseth avatar cjentzsch avatar codeshark avatar cubedro avatar danielhams avatar debris avatar fjl avatar gavofyork avatar gcolvin avatar genoil avatar giact avatar gluk256 avatar gumb0 avatar halfalicious avatar lefterisjp avatar lianahus avatar obscuren avatar onepremise avatar pirapira avatar subtly avatar tiimjiim avatar winsvega avatar yann300 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aleth's Issues

Compiler/C++11 bug building on macos (Mavericks)

I'll look into this later this evening or tomorrow. Just wanting to get it noted.

After googling, I believe this is a bug with clang with regard to the mem[i.first] syntax. Didn't track down why though. Rather ambiguous error if you ask me :)

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:1276:29: error: call to member function '__construct_node' is ambiguous
__node_holder __h = __construct_node(__k);
^~~~~~~~~~~~~~~~
/Users/alex/code/otl/ethereum/cpp-ethereum/libethereum/State.cpp:106:7: note: in instantiation of member function 'std::__1::map<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>,
boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, std::__1::less<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> >, std::__1::allocator<std::__1::pair<const
boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> > > >::operator[]' requested here
mem[i.first] = RLP(i.second).toInt();
^

Cannot make on Ubuntu 13.10

Following these instructions:

$ cmake ../cpp-ethereum-0.3.11/ -DCMAKE_BUILD_TYPE=Release
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Crypto++: /usr/include/cryptopp, /usr/lib/libcryptopp.so
-- System Crypto++ found and version greater or equal to 5.6.2
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
Installation path: /usr/local
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cristian/Desktop/Ethereum/cpp-ethereum-build

$ ls
alethzero  CMakeCache.txt  CMakeFiles  cmake_install.cmake  eth  libethereum  Makefile  secp256k1  test

$ make
Scanning dependencies of target BuildInfo.h
Current source dir: /home/cristian/Desktop/Ethereum/cpp-ethereum-0.3.11
Current binary dir: /home/cristian/Desktop/Ethereum/cpp-ethereum-build
Build type: Release
Build platform: Linux/g++
Unknown repo.
[  0%] Built target BuildInfo.h
Scanning dependencies of target secp256k1
[  2%] Building C object secp256k1/CMakeFiles/secp256k1.dir/secp256k1.c.o
Linking C static library libsecp256k1.a
[  2%] Built target secp256k1
Scanning dependencies of target ethereum
[  5%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Defaults.cpp.o
[  8%] Building CXX object libethereum/CMakeFiles/ethereum.dir/TrieCommon.cpp.o
[ 10%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Dagger.cpp.o
[ 13%] Building CXX object libethereum/CMakeFiles/ethereum.dir/RLP.cpp.o
[ 16%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Transaction.cpp.o
[ 18%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Common.cpp.o
[ 21%] Building CXX object libethereum/CMakeFiles/ethereum.dir/BlockInfo.cpp.o
[ 24%] Building CXX object libethereum/CMakeFiles/ethereum.dir/PeerNetwork.cpp.o
[ 27%] Building CXX object libethereum/CMakeFiles/ethereum.dir/TrieDB.cpp.o
[ 29%] Building CXX object libethereum/CMakeFiles/ethereum.dir/MemTrie.cpp.o
[ 32%] Building CXX object libethereum/CMakeFiles/ethereum.dir/TransactionQueue.cpp.o
[ 35%] Building CXX object libethereum/CMakeFiles/ethereum.dir/VM.cpp.o
[ 37%] Building CXX object libethereum/CMakeFiles/ethereum.dir/UPnP.cpp.o
[ 40%] Building CXX object libethereum/CMakeFiles/ethereum.dir/FileSystem.cpp.o
[ 43%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Instruction.cpp.o
[ 45%] Building CXX object libethereum/CMakeFiles/ethereum.dir/FeeStructure.cpp.o
[ 48%] Building CXX object libethereum/CMakeFiles/ethereum.dir/AddressState.cpp.o
[ 51%] Building CXX object libethereum/CMakeFiles/ethereum.dir/Client.cpp.o
[ 54%] Building CXX object libethereum/CMakeFiles/ethereum.dir/State.cpp.o
[ 56%] Building CXX object libethereum/CMakeFiles/ethereum.dir/TrieHash.cpp.o
[ 59%] Building CXX object libethereum/CMakeFiles/ethereum.dir/BlockChain.cpp.o
Linking CXX static library libethereum.a
[ 59%] Built target ethereum
Scanning dependencies of target testeth
[ 62%] Building CXX object test/CMakeFiles/testeth.dir/crypto.cpp.o
[ 64%] Building CXX object test/CMakeFiles/testeth.dir/dagger.cpp.o
[ 67%] Building CXX object test/CMakeFiles/testeth.dir/main.cpp.o
[ 70%] Building CXX object test/CMakeFiles/testeth.dir/rlp.cpp.o
[ 72%] Building CXX object test/CMakeFiles/testeth.dir/trie.cpp.o
[ 75%] Building CXX object test/CMakeFiles/testeth.dir/state.cpp.o
[ 78%] Building CXX object test/CMakeFiles/testeth.dir/peer.cpp.o
[ 81%] Building CXX object test/CMakeFiles/testeth.dir/vm.cpp.o
[ 83%] Building CXX object test/CMakeFiles/testeth.dir/hexPrefix.cpp.o
Linking CXX executable testeth
../libethereum/libethereum.a(Common.cpp.o): In function `eth::sha3(eth::vector_ref<unsigned char const>, eth::vector_ref<unsigned char>)':
Common.cpp:(.text+0x34d): undefined reference to `vtable for CryptoPP::SHA3'
Common.cpp:(.text+0x379): undefined reference to `CryptoPP::SHA3::Restart()'
Common.cpp:(.text+0x38f): undefined reference to `CryptoPP::SHA3::Update(unsigned char const*, unsigned long)'
Common.cpp:(.text+0x3b1): undefined reference to `vtable for CryptoPP::SHA3'
Common.cpp:(.text+0x3fd): undefined reference to `vtable for CryptoPP::SHA3'
../libethereum/libethereum.a(State.cpp.o): In function `void eth::VM::go<eth::ExtVM>(eth::ExtVM&, unsigned long)':
State.cpp:(.text._ZN3eth2VM2goINS_5ExtVMEEEvRT_m[_ZN3eth2VM2goINS_5ExtVMEEEvRT_m]+0x2d0f): undefined reference to `vtable for CryptoPP::SHA3'
State.cpp:(.text._ZN3eth2VM2goINS_5ExtVMEEEvRT_m[_ZN3eth2VM2goINS_5ExtVMEEEvRT_m]+0x2d3b): undefined reference to `CryptoPP::SHA3::Restart()'
State.cpp:(.text._ZN3eth2VM2goINS_5ExtVMEEEvRT_m[_ZN3eth2VM2goINS_5ExtVMEEEvRT_m]+0x2ebb): undefined reference to `vtable for CryptoPP::SHA3'
State.cpp:(.text._ZN3eth2VM2goINS_5ExtVMEEEvRT_m[_ZN3eth2VM2goINS_5ExtVMEEEvRT_m]+0x4c24): undefined reference to `vtable for CryptoPP::SHA3'
CMakeFiles/testeth.dir/vm.cpp.o: In function `CryptoPP::SHA3_256::~SHA3_256()':
vm.cpp:(.text._ZN8CryptoPP8SHA3_256D2Ev[_ZN8CryptoPP8SHA3_256D5Ev]+0x6): undefined reference to `vtable for CryptoPP::SHA3'
CMakeFiles/testeth.dir/vm.cpp.o: In function `CryptoPP::SHA3_256::~SHA3_256()':
vm.cpp:(.text._ZN8CryptoPP8SHA3_256D0Ev[_ZN8CryptoPP8SHA3_256D0Ev]+0x6): undefined reference to `vtable for CryptoPP::SHA3'
CMakeFiles/testeth.dir/vm.cpp.o: In function `void eth::VM::go<eth::FakeExtVM>(eth::FakeExtVM&, unsigned long)':
vm.cpp:(.text._ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m[_ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m]+0x2fc7): undefined reference to `vtable for CryptoPP::SHA3'
vm.cpp:(.text._ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m[_ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m]+0x2ff3): undefined reference to `CryptoPP::SHA3::Restart()'
vm.cpp:(.text._ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m[_ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m]+0x316f): undefined reference to `vtable for CryptoPP::SHA3'
vm.cpp:(.text._ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m[_ZN3eth2VM2goINS_9FakeExtVMEEEvRT_m]+0x48a5): undefined reference to `vtable for CryptoPP::SHA3'
CMakeFiles/testeth.dir/vm.cpp.o:(.rodata._ZTIN8CryptoPP8SHA3_256E[_ZTIN8CryptoPP8SHA3_256E]+0x10): undefined reference to `typeinfo for CryptoPP::SHA3'
CMakeFiles/testeth.dir/vm.cpp.o:(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x30): undefined reference to `CryptoPP::SHA3::Update(unsigned char const*, unsigned long)'
CMakeFiles/testeth.dir/vm.cpp.o:(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x48): undefined reference to `CryptoPP::SHA3::Restart()'
CMakeFiles/testeth.dir/vm.cpp.o:(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x88): undefined reference to `CryptoPP::SHA3::TruncatedFinal(unsigned char*, unsigned long)'
collect2: error: ld returned 1 exit status
make[2]: *** [test/testeth] Error 1
make[1]: *** [test/CMakeFiles/testeth.dir/all] Error 2
make: *** [all] Error 2

GUI client compiling error (Ubuntu)

Here's what I get when trying to compile a qt client:

~/Downloads/Software/cpp-ethereum-build/alephzero $ qmake ../../cpp-ethereum-poc-1/alephzero
~/Downloads/Software/cpp-ethereum-build/alephzero $ make
g++ -c -m64 -pipe -std=c++11 -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++-64 -I../../cpp-ethereum-poc-1/alephzero -I../../secp256k1/include -I../../cryptopp562 -I../../cpp-ethereum -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -I. -I. -o main.o ../../cpp-ethereum-poc-1/alephzero/main.cpp
In file included from ../../cpp-ethereum-poc-1/alephzero/main.cpp:1:0:
../../cpp-ethereum-poc-1/alephzero/MainWin.h:8:32: fatal error: libethereum/Client.h: No such file or directory
 #include <libethereum/Client.h>
                                ^
compilation terminated.

Locally mined blocks fail to import due to invalid timestamp.

Having synced the blockchain to #23775 with a single peer, I now have a situation where locally mined blocks will not import due to their timestamp being invalid (even after disconnecting from the network). I have 4 failed blocks over a period of more than 15 minutes. There are two issues here:

  1. Firstly, how did my locally mined block have a timestamp older than it's parent?
  2. Having failed to import a locally mined block, the mining process is resumed rather than restarted, this results in more blocks with invalid timestamps.

qt5-cmake "unable to locate package" - Ubuntu 3.10/11

FYI - performing ... sudo apt-get install qt5-cmake

yields the error above.

I did not continue with an update / install of eth / alethz ... just stopped at that point.

Everything is fine obviously - just reporting on the error, since this is a recent change

Connect to a Network Peer

In the select box of the "Connect to a Network Peer" window, the list is filled with the following HTML error:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.1 (Ubuntu)</center>
</body>
</html>

Question about VM implementation

I note the VM.h code has this

case Instruction::GE:
require(2);
m_stack[m_stack.size() - 2] = m_stack.back() >= m_stack[m_stack.size() - 2] ? 1 : 0;
m_stack.pop_back();
break;

while the white paper has this

(13) GE - pops two items and pushes 1 if S[-2] >= S[-1] else 0

unless my C++ is very rusty they don't match. My question is really which should we outsiders assume is correct? (If this is the wrong place to ask this let me know.)

KEYS review - point me please

While an IT veteran of 35 years - I'm a newbie to crypto, BC, blockchain, etc.

When I built and ran on 2/6 (aleph...) - the system "created" some keys for me - where?

The new aleth client at my 1st run, after "opened block chain ...." says,

------- ADDRESS --------
SEC: dfc8b ....
PUB: bfde8 ....
ADR: d467d ....

------- ADDRESS ------
SEC: 2e53 .....
PUB: 3f731 ....
ADR: 0e33 .....

My questions are:

  1. With the original aleth client - it supposedly gave me a set of "keys" right?
    Where are they? Did I delete them with the fix to running aleth client (the rm ./ethereum command?) or are keys stored somewhere else?

  2. Do I now have 3 sets of keys or 4 sets of keys? (with the old aleph client - it gave me one set I presume) - but then I generated at least 1 more set by striking the "CREATE" button in the aleph client)

  3. If NOT, then why does the new aleth client - give me two sets of -------ADDRESS ---- lines?

I don't see the kind of "documentation" that yet helps me understand these items (I get the general gist of it - and look forward to working with the community - since I"m just starting) - but can you point me to some "doc" - I've looked over the blog and forum - is it in the WIKI? or is there some general doc on the ethereum or BC architecture and can review?

How do I get more involved - I'd like to make this part of my life's work - for the next decade or two - I see this has potential huge with all the potential apps.

I'm a very capable developer and business development person - so how can I get plugged in "deeper".

Thanks

Dave (comtechnet)

./alethzero/alethzero Aborted (core dumped)

eth and alephzero (note NOT alethzero) Build from 2/6/14 was running fine until the git pull of 2/10. Did another 2 pulls since then - including this morning 2/12.

cmake ../cpp-ethereum - DCMAKE_BUILD_TYPE=Release
runs ok - but does have
-- System Crypto++ not found, broken or old. We use /home/xxxxx/cryptopp562/libcryptopp,a

make runs ok

./alethzero/alethzero

terminate called after throwing an instance of 'eth::RLP::BadCast' what(): std::exception

I have not deleted any previous data files or directories !./ethereum or /etc/files, etc.

eth aborted 2014-02-12 06 40 26

Blockchain forks !!! (+ideas)

Due to several Ethereum blockchain resets by developers, it is important to note we now have at least 2 forks of chains.
One has about ~4000 blocks, the other 10,000+ blocks.

On my PC and on http://etherchain.org/ I see the longer chain.

Solution for developers:
But if the dev team wants to flush and really reset the chain, here is the procedure:

  1. announce it in advance (transparency is important!)
  2. release team (core developers) must generate a new genesis block
  3. hard code the new genesis block hash into a new client, such as new BETA/POC or an actual release.
    (+you can have an optional-command line to enter a different genesis block hash, just in case you wanna work on a forked chain to test things)

Solution for end-users:

  1. Install same version of client (such as POC3, C++ version, Alethzero)
  2. Make peer connection to each other.
    This will replace short chains with the longest one.

This way, the older (longer) chain will no longer over-ride the short chain.

-Technologov, 07.Mar.2014.

OSX POC crash with EXC_BAD_INSTRUCTION

On behalf of awrell in IRC:

Machine is a OSX Mavericks 10.9, CPU Intel i5 2.53

On launch, AlethZero exits with EXC_BAD_INSTRUCTION - the following stack trace in LLDB:

'''

(lldb) thread list
Process 1791 stopped
* thread #1: tid = 0x140cf, 0x00000001012b864a libethereum.dylib`_GLOBAL__I_a + 10, queue = 'com.apple.main-thread, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
  thread #2: tid = 0x1417a, 0x00007fff8c9f6662 libsystem_kernel.dylib`kevent64 + 10, queue = 'com.apple.libdispatch-manager
(lldb) thread backtrace
* thread #1: tid = 0x140cf, 0x00000001012b864a libethereum.dylib`_GLOBAL__I_a + 10, queue = 'com.apple.main-thread, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
    frame #0: 0x00000001012b864a libethereum.dylib`_GLOBAL__I_a + 10
    frame #1: 0x00007fff5fc11c2e dyld`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 268
    frame #2: 0x00007fff5fc11dba dyld`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
    frame #3: 0x00007fff5fc0ea62 dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 308
    frame #4: 0x00007fff5fc0e9eb dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 189
    frame #5: 0x00007fff5fc0e8f6 dyld`ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 54
    frame #6: 0x00007fff5fc021da dyld`dyld::initializeMainExecutable() + 189
    frame #7: 0x00007fff5fc05560 dyld`dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 2419
    frame #8: 0x00007fff5fc0127b dyld`dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) + 477
    frame #9: 0x00007fff5fc0105e dyld`_dyld_start + 54

'''

Is it possible that the compiled binary uses features not supported by the i5 CPU? I'm personally stumped as to where this might come from.

We tried with application security off (System Preferences-> General->Allow apps downloaded from anywhere) and that didn't make any difference.

I'll ask awrelll to subscribe should you need more info.

Building on ubuntu 13.10 fails, missing gmp.h include

Hi,

I have installed all the prereqs and the final cmake step works well, but can't find gmp.h when I do make to build ethereum.

Any suggestions?

Thanks

lms@hp|19:38|/src/cpp-ethereum-build $ cmake -DCMAKE_BUILD_TYPE=Debug ../cpp-ethereum
-- System Crypto++ not found, broken or too old. We use /home/lms/src/cryptopp562/libcryptopp.a
Installation path: /usr/local
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lms/src/cpp-ethereum-build
lms@hp|19:39|
/src/cpp-ethereum-build $ make
Scanning dependencies of target secp256k1
[ 3%] Building C object secp256k1/CMakeFiles/secp256k1.dir/secp256k1.c.o
In file included from /home/lms/src/cpp-ethereum/secp256k1/impl/../num.h:9:0,
from /home/lms/src/cpp-ethereum/secp256k1/impl/num.h:8,
from /home/lms/src/cpp-ethereum/secp256k1/secp256k1.c:5:
/home/lms/src/cpp-ethereum/secp256k1/impl/../num_gmp.h:8:17: fatal error: gmp.h: No such file or directory
#include < gmp.h >
^
compilation terminated.
make[2]: *** [secp256k1/CMakeFiles/secp256k1.dir/secp256k1.c.o] Error 1
make[1]: *** [secp256k1/CMakeFiles/secp256k1.dir/all] Error 2
make: *** [all] Error 2

License

"We will release the source code and settle on a license soon."

What Vitalik said Jan 6, 2014. I guess the LICENSE file is premature or have you already decided?

OSX Style/Deprecated Code Warnings

Please take this as a kindly enquiry, not criticism.

Compilation of HEAD results in deprecation warnings for the use of dispatch_get_current_queue():

libethereum/Common.h:194:74: warning: 'dispatch_get_current_queue' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]

I'm not certain that the use of dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) could be used as a drop in replacement for the use in cpp-ethereum:

http://stackoverflow.com/questions/13237417/alternatives-to-dispatch-get-current-queue-for-completion-blocks-in-ios-6

I am curious why GCD was used - OSX + clang++ has no problem supporting C++11 threads and there are simple(ish) work-arounds for the lack of global thread_local (class instance boost thread_specific_ptr for example).

Responding to GetChainPacket can send each block 32 times

See below snippet of a trace of sending a large number of blocks to another peer. The routine is sending 32 blocks each time, but it's only decrementing the start block number by one. As well as spamming 32x more data, somewhat unhelpfully for the other peer, the blocks are also sent in reverse order.

=N= [ 22:52:52 | eth | 884 ] Requires 9321 blocks from 9824 to 503
=N= [ 22:52:52 | eth | 884 ] a82ed9e54ef15a5fc5520079f777258ddb80fd68fa111ee991da3212edb08a3a - 92aad04fa2d72fd98770aeae4a64d1bb0b66a20f843b785b7ef6de942bbc95ba
=N= [ 22:52:52 | eth | 884 ] Sending 32 blocks from 535 to 503
=N= [ 22:52:52 | eth | 884 ] 0 41b34287d90738ce2705849a14728c7840bf7b7338425bf21e18701f10eaa8b3
=N= [ 22:52:52 | eth | 884 ] 1 f5f9b19e5da723a2a2a9656616069215b6b27493735d203c7ff40996f55f0e2d
=N= [ 22:52:52 | eth | 884 ] 2 c050e8bed8f33097cd37d3bc1c1b27ab1957e0d2d19010d9ba551e09ed3ae1a1
=N= [ 22:52:52 | eth | 884 ] 3 c615e22741861f82aa5b5722984062e401c1bb015a96e2491af1c229aa46504b
=N= [ 22:52:52 | eth | 884 ] 4 a6a156de51ac3733bc8c2fe12fe386f7faa33a5e7872911b4ba0c56a5e5dfc86
=N= [ 22:52:52 | eth | 884 ] 5 32e87db70e311e753178489df0ef3a2c433742ea50a9d89f3c3f07a2e2dc1253
=N= [ 22:52:52 | eth | 884 ] 6 f31a37ddebdceba977351791d7af52ab81c1a37e7db355d4dafa4687526b723c
=N= [ 22:52:52 | eth | 884 ] 7 d081d5a81bbd985199af8906f345956e3eb379c62a92dccd27a14faf73d1569d
=N= [ 22:52:52 | eth | 884 ] 8 274550b38a3364cf4bac316e9a25041dc6f3891660958926a49ec12afdc486ea
=N= [ 22:52:52 | eth | 884 ] 9 629dc4e028b316310c0a98257f9737512992a33b66126e36b41b200a765e1011
=N= [ 22:52:52 | eth | 884 ] 10 fd30bba5993fd3d09d89a4ecdf55b3d2443a907a85925aa471ecc0f7a59df742
=N= [ 22:52:52 | eth | 884 ] 11 4631f4ba09c57a68b8138818af9992a3d6daf71ebbd6b9a345a41c58b81fc868
=N= [ 22:52:52 | eth | 884 ] 12 192af1eabda8f62d2f65b3796bf9125730d6e0bf6ea57965a02b49d82f23adce
=N= [ 22:52:52 | eth | 884 ] 13 353cf22f09f84e2ed16a6ea21c7d2470c5b4ef941f50c5a5bbe9ec95c8ef5f05
=N= [ 22:52:52 | eth | 884 ] 14 b0b40df3641ac60a73bd854e7872c367e37c6f9b4b2b69d694edfba445cc464c
=N= [ 22:52:52 | eth | 884 ] 15 05ef36003b7bca8e56ecb66f9a9164697f71bef9652049a76b50afcc5159555b
=N= [ 22:52:52 | eth | 884 ] 16 4012730ad2462aefa213bfcd70c76c2936461be080b00efa94722479d6b41f83
=N= [ 22:52:52 | eth | 884 ] 17 8cd1341e8e0770b13220059e12ee634b8a1bcdc74a2656db0b09ed0e746970ee
=N= [ 22:52:52 | eth | 884 ] 18 5d5f9dc2adcf1add3be4d3cbcd7509bfa78ebb26aa50b9f193545da8139d54a9
=N= [ 22:52:52 | eth | 884 ] 19 72e65a3067e6f7186df02aab04766ad9182b55820adf910b50926c521bfe0ac5
=N= [ 22:52:52 | eth | 884 ] 20 4154e5b0fb1cca4e2cf8776682b76343c9b88490695b4cb20a8014bbb24db2ab
=N= [ 22:52:52 | eth | 884 ] 21 b2217897793ee7703afecef354b151e40c2f32a8985e9f5ca0566fd50db6bfc3
=N= [ 22:52:52 | eth | 884 ] 22 78f49a46c133c2d7ead4c6faccb111fd50af42aa39e33f62c76d411f548f1031
=N= [ 22:52:52 | eth | 884 ] 23 df23fcc33e6aa33f6613d24c808a395af8d75026e3dad50733730a62d9699e79
=N= [ 22:52:52 | eth | 884 ] 24 073a1b10a5fd5413476b2981de9f08686a828f7e53a12d4fa319735f67236cc5
=N= [ 22:52:52 | eth | 884 ] 25 2749b23ecaebf8c3768b77be22fcd95e48ff620ed655c9d5bda94ed4cb70f82f
=N= [ 22:52:52 | eth | 884 ] 26 5ca3d4970662f302653f18f020c9c8f0c52ead06890878396f37ede81114f6d8
=N= [ 22:52:52 | eth | 884 ] 27 a234b587b2120a3e3d501c04bebb68644ad0287a3959add1163272b923b44cf4
=N= [ 22:52:52 | eth | 884 ] 28 74fa9ce98733946f7ab0cc7186179620418998ca8b2b520bb616b54bd1bad19a
=N= [ 22:52:52 | eth | 884 ] 29 64e5a12a4150b495297a43dc3f9c9c5844e22cd5b87a0ccb5b9835386895f8c6
=N= [ 22:52:52 | eth | 884 ] 30 a3315ed48a54ad29aa7e7e71a35c5d3b06bd45e698ea9444f47e62a1bd4e1c14
=N= [ 22:52:52 | eth | 884 ] 31 8abd5897bfcf22fab0cedb5cbcf6b0d6e7206fb40371ce0027af571ff5c99327
=N= [ 22:52:52 | eth | 884 ] Parent: 48a4395568a462a1ea4695b4cf0a00f7c114981a4ad200a91382e923e3348103
=N= [ 22:52:52 | eth | 884 ] Requires 9322 blocks from 9824 to 502
=N= [ 22:52:52 | eth | 884 ] a82ed9e54ef15a5fc5520079f777258ddb80fd68fa111ee991da3212edb08a3a - 30630d3fe02f965fff8bd230fe4231f10e2d6097dc4c3055a1d30c6047fb3098
=N= [ 22:52:52 | eth | 884 ] Sending 32 blocks from 534 to 502
=N= [ 22:52:52 | eth | 884 ] 0 f5f9b19e5da723a2a2a9656616069215b6b27493735d203c7ff40996f55f0e2d
=N= [ 22:52:52 | eth | 884 ] 1 c050e8bed8f33097cd37d3bc1c1b27ab1957e0d2d19010d9ba551e09ed3ae1a1
=N= [ 22:52:52 | eth | 884 ] 2 c615e22741861f82aa5b5722984062e401c1bb015a96e2491af1c229aa46504b
=N= [ 22:52:53 | eth | 884 ] 3 a6a156de51ac3733bc8c2fe12fe386f7faa33a5e7872911b4ba0c56a5e5dfc86
=N= [ 22:52:53 | eth | 884 ] 4 32e87db70e311e753178489df0ef3a2c433742ea50a9d89f3c3f07a2e2dc1253
=N= [ 22:52:53 | eth | 884 ] 5 f31a37ddebdceba977351791d7af52ab81c1a37e7db355d4dafa4687526b723c
=N= [ 22:52:53 | eth | 884 ] 6 d081d5a81bbd985199af8906f345956e3eb379c62a92dccd27a14faf73d1569d
=N= [ 22:52:53 | eth | 884 ] 7 274550b38a3364cf4bac316e9a25041dc6f3891660958926a49ec12afdc486ea
=N= [ 22:52:53 | eth | 884 ] 8 629dc4e028b316310c0a98257f9737512992a33b66126e36b41b200a765e1011
=N= [ 22:52:53 | eth | 884 ] 9 fd30bba5993fd3d09d89a4ecdf55b3d2443a907a85925aa471ecc0f7a59df742
=N= [ 22:52:53 | eth | 884 ] 10 4631f4ba09c57a68b8138818af9992a3d6daf71ebbd6b9a345a41c58b81fc868
=N= [ 22:52:53 | eth | 884 ] 11 192af1eabda8f62d2f65b3796bf9125730d6e0bf6ea57965a02b49d82f23adce
=N= [ 22:52:53 | eth | 884 ] 12 353cf22f09f84e2ed16a6ea21c7d2470c5b4ef941f50c5a5bbe9ec95c8ef5f05
=N= [ 22:52:53 | eth | 884 ] 13 b0b40df3641ac60a73bd854e7872c367e37c6f9b4b2b69d694edfba445cc464c
=N= [ 22:52:53 | eth | 884 ] 14 05ef36003b7bca8e56ecb66f9a9164697f71bef9652049a76b50afcc5159555b
=N= [ 22:52:53 | eth | 884 ] 15 4012730ad2462aefa213bfcd70c76c2936461be080b00efa94722479d6b41f83
=N= [ 22:52:53 | eth | 884 ] 16 8cd1341e8e0770b13220059e12ee634b8a1bcdc74a2656db0b09ed0e746970ee
=N= [ 22:52:53 | eth | 884 ] 17 5d5f9dc2adcf1add3be4d3cbcd7509bfa78ebb26aa50b9f193545da8139d54a9
=N= [ 22:52:53 | eth | 884 ] 18 72e65a3067e6f7186df02aab04766ad9182b55820adf910b50926c521bfe0ac5
=N= [ 22:52:53 | eth | 884 ] 19 4154e5b0fb1cca4e2cf8776682b76343c9b88490695b4cb20a8014bbb24db2ab
=N= [ 22:52:53 | eth | 884 ] 20 b2217897793ee7703afecef354b151e40c2f32a8985e9f5ca0566fd50db6bfc3
=N= [ 22:52:53 | eth | 884 ] 21 78f49a46c133c2d7ead4c6faccb111fd50af42aa39e33f62c76d411f548f1031
=N= [ 22:52:53 | eth | 884 ] 22 df23fcc33e6aa33f6613d24c808a395af8d75026e3dad50733730a62d9699e79
=N= [ 22:52:53 | eth | 884 ] 23 073a1b10a5fd5413476b2981de9f08686a828f7e53a12d4fa319735f67236cc5
=N= [ 22:52:53 | eth | 884 ] 24 2749b23ecaebf8c3768b77be22fcd95e48ff620ed655c9d5bda94ed4cb70f82f
=N= [ 22:52:53 | eth | 884 ] 25 5ca3d4970662f302653f18f020c9c8f0c52ead06890878396f37ede81114f6d8
=N= [ 22:52:53 | eth | 884 ] 26 a234b587b2120a3e3d501c04bebb68644ad0287a3959add1163272b923b44cf4
=N= [ 22:52:53 | eth | 884 ] 27 74fa9ce98733946f7ab0cc7186179620418998ca8b2b520bb616b54bd1bad19a
=N= [ 22:52:53 | eth | 884 ] 28 64e5a12a4150b495297a43dc3f9c9c5844e22cd5b87a0ccb5b9835386895f8c6
=N= [ 22:52:53 | eth | 884 ] 29 a3315ed48a54ad29aa7e7e71a35c5d3b06bd45e698ea9444f47e62a1bd4e1c14
=N= [ 22:52:53 | eth | 884 ] 30 8abd5897bfcf22fab0cedb5cbcf6b0d6e7206fb40371ce0027af571ff5c99327
=N= [ 22:52:53 | eth | 884 ] 31 48a4395568a462a1ea4695b4cf0a00f7c114981a4ad200a91382e923e3348103
=N= [ 22:52:53 | eth | 884 ] Parent: 30e25afbb942e5bd41b39df4fff90ead6230bf0551e5d45265257873d0ce139a

Building fail on ubuntu 13.10

The steps I did to build ethereum:
git clone https://github.com/ethereum/cpp-ethereum.git
mkdir cpp-ethereum-build
cd cpp-ethereum-build/
cmake -DCMAKE_BUILD_TYPE=Debug ../cpp-ethereum
make
and then I get this:
http://i.imgur.com/DeMgeCD.png
or:


Linking CXX executable testeth
../libethereum/libethereum.a(State.cpp.o): In function `CryptoPP::SHA3::SHA3(unsigned int)':
/usr/include/cryptopp/sha3.h:15: undefined reference to `vtable for CryptoPP::SHA3'
/usr/include/cryptopp/sha3.h:15: undefined reference to `CryptoPP::SHA3::Restart()'
../libethereum/libethereum.a(State.cpp.o): In function `CryptoPP::SHA3::~SHA3()':
/usr/include/cryptopp/sha3.h:12: undefined reference to `vtable for CryptoPP::SHA3'
../libethereum/libethereum.a(State.cpp.o):(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x30): undefined reference to `CryptoPP::SHA3::Update(unsigned char const*, unsigned long)'
../libethereum/libethereum.a(State.cpp.o):(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x48): undefined reference to `CryptoPP::SHA3::Restart()'
../libethereum/libethereum.a(State.cpp.o):(.rodata._ZTVN8CryptoPP8SHA3_256E[_ZTVN8CryptoPP8SHA3_256E]+0x88): undefined reference to `CryptoPP::SHA3::TruncatedFinal(unsigned char*, unsigned long)'
../libethereum/libethereum.a(State.cpp.o):(.rodata._ZTIN8CryptoPP8SHA3_256E[_ZTIN8CryptoPP8SHA3_256E]+0x10): undefined reference to `typeinfo for CryptoPP::SHA3'
collect2: error: ld returned 1 exit status
make[2]: *** [test/testeth] Error 1
make[1]: *** [test/CMakeFiles/testeth.dir/all] Error 2
make: *** [all] Error 2

I have tried previously 4-5 times to build the .tar.gz version, and at that time I installed all dependencies, cryptopp-562, etc ...

GUI renamed to alethzero causing errors

The GUI client for cpp-ethereum was named "alephzero" but recently the main folder has been renamed to "alethzero", seemingly without reason, causing the build to break.

What was the reason for changing the name in the first place?

Windows (Visual Studio Build): contract window not functional.

I've tried bootstrap + Visual Studio 64-bit Window build yesterday. There is a discrepancy between that build and Linux (developer HEAD).

On Linux, typing opcodes (upper window on the left, numbers) causes immediate translation to the LLL (ADD, MUL, STOP etc.) in the window below.

On Windows, this is mostly dysfunctional. Only large numbers like 123 are translated (to 0x7B).

image

eth Segmentation fault on peer connection

Running: eth -i with version 8b53cd1

After running for a couple minutes:

*N* [ 20:15:47 | eth ] Accepted connection from 10.0.2.2:1025
*N* [ 20:15:47 | eth ] Listening on local port 30303  (public: 10.0.2.15:30303 )
>N> [ 20:15:47 | eth | 28 ] [ 0x0, 0x3, 0x0, 0x416C6574685A65726F2F76302E322E322F52656C656173652F4C696E75782F672B2B, 0x7, 0x765F, 0xF982B1FF994CD7384B5AAFA23AE6687647609C98CC4B7AB478564A95C869B3F58AE93E47854C18C99F76EE959F980622B383B241D9745A4563B467AB7F38BF3B ]
-N- [ 20:15:47 | eth | 28 ] Hello: AlethZero/v0.2.2/Release/Linux/g++ V[ 3 / 0 ] f982b1ff 0x7 30303
>N> [ 20:15:47 | eth | 24 ] [ 0x2 ]
>N> [ 20:15:47 | eth | 28 ] [ 0x2 ]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff62ea700 (LWP 11339)]
0x000000000052b296 in eth::RLP::iterator::operator++() ()
(gdb) bt
#0  0x000000000052b296 in eth::RLP::iterator::operator++() ()
#1  0x000000000052d96d in eth::operator<<(std::ostream&, eth::RLP const&) ()
#2  0x000000000052d965 in eth::operator<<(std::ostream&, eth::RLP const&) ()
#3  0x000000000051c5ed in eth::LogOutputStream<eth::NetRight, true>& eth::LogOutputStream<eth::NetRight, true>::operator<< <eth::RLP>(eth::RLP const&) ()
#4  0x00000000005128fb in eth::PeerSession::interpret(eth::RLP const&) ()
#5  0x0000000000517611 in eth::PeerSession::doRead()::{lambda(boost::system::error_code, unsigned long)#1}::operator()(boost::system::error_code, unsigned long) const [clone .isra.605] ()
#6  0x0000000000517e63 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, eth::PeerSession::doRead()::{lambda(boost::system::error_code, unsigned long)#1}>::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
#7  0x000000000051bc9f in boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
#8  0x000000000051b773 in boost::asio::detail::task_io_service::poll(boost::system::error_code&) ()
#9  0x0000000000509781 in eth::PeerServer::process(eth::BlockChain&) ()
#10 0x000000000050f369 in eth::PeerServer::process(eth::BlockChain&, eth::TransactionQueue&, eth::Overlay&) ()
#11 0x0000000000502b1b in eth::Client::work() ()
#12 0x0000000000502d15 in std::thread::_Impl<std::_Bind_simple<eth::Client::Client(std::string const&, eth::FixedHash<20u>, std::string const&)::{lambda()#1} ()> >::_M_run() ()
#13 0x00007ffff6e84770 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#14 0x00007ffff79c0f6e in start_thread (arg=0x7ffff62ea700) at pthread_create.c:311
#15 0x00007ffff65eb9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

ethereum-poc3-win64 doesn't start + memory leak

I downloaded the client and tried starting it using the alethzero.exe, but nothing happened. A bit later I got a message from windows saying I'm out of memory, I immediately hit the task manager and saw alethzero.exe was using 15GB of ram. This doesn't really seem to be working...?

Using Windows 8.1

3-1-14 cpp-eth update renders Ubuntu 13.10 spinning - infinite loop

So - running since 2-25-14 alethzero, noticed some updates, so downloaded the leading edge version (version I've been helping to test with, etc.). cmake and make no prob. went to run the gui and got one single message in terminal regarding the block and "sat there" - system was very much unresponsive - mouse would move with severe delays, could not stop the terminal window - would not close - system basically "dead".

NOTE - I had NOT performed the rm -rf ~/.ethereum step!

This is a much more sever condition - not happened so far to date with testing once and twice a week the new HEAD versions, etc.

So - I've suggested that we place some edit checks for this condition, I would vote on making this now a higher priority - albeit still not urgent, etc.

The pseudo code, should be something like this ...

check version installed, if older - check the keys or blockchain files for compatability (if requried by this version, put msg to user for options, proceed

CTN (comtechnet)

P.S. (after the rm -rf ~/.ethereum, AFTER a SYSTEM HARD BOOT), all is good again, but I"M back to 1000 ether (SAD FACE - come on - give us some luv!)

Linking error on Debian

It builds up to linking alephzero, and then gives errors about multiple definitions of methods. This is on Debian testing. Any suggestions?

[  2%] Built target secp256k1
[ 55%] Built target ethereum
[ 79%] Built target testeth
[ 82%] Built target eth
[ 85%] Automoc for target alethzero
[ 85%] Built target alethzero_automoc
Linking CXX executable alethzero
CMakeFiles/alethzero.dir/moc_MainWin.cpp.o: In function `Main::metaObject() const':
moc_MainWin.cpp:(.text+0x0): multiple definition of `Main::metaObject() const'
CMakeFiles/alethzero.dir/alethzero_automoc.cpp.o:alethzero_automoc.cpp:(.text+0x0): first defined here
CMakeFiles/alethzero.dir/moc_MainWin.cpp.o:(.data.rel.ro+0x0): multiple definition of `Main::staticMetaObject'
CMakeFiles/alethzero.dir/alethzero_automoc.cpp.o:(.data.rel.ro+0x0): first defined here
CMakeFiles/alethzero.dir/moc_MainWin.cpp.o: In function `Main::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)':
moc_MainWin.cpp:(.text+0x20): multiple definition of `Main::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)'
CMakeFiles/alethzero.dir/alethzero_automoc.cpp.o:alethzero_automoc.cpp:(.text+0x20): first defined here
CMakeFiles/alethzero.dir/moc_MainWin.cpp.o: In function `Main::qt_metacast(char const*)':
moc_MainWin.cpp:(.text+0xd0): multiple definition of `Main::qt_metacast(char const*)'
CMakeFiles/alethzero.dir/alethzero_automoc.cpp.o:alethzero_automoc.cpp:(.text+0xd0): first defined here
CMakeFiles/alethzero.dir/moc_MainWin.cpp.o: In function `Main::qt_metacall(QMetaObject::Call, int, void**)':
moc_MainWin.cpp:(.text+0x120): multiple definition of `Main::qt_metacall(QMetaObject::Call, int, void**)'
CMakeFiles/alethzero.dir/alethzero_automoc.cpp.o:alethzero_automoc.cpp:(.text+0x120): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [alethzero/alethzero] Error 1
make[1]: *** [alethzero/CMakeFiles/alethzero.dir/all] Error 2
make: *** [all] Error 2

Compilation failure on OSX

Current head (as of submission time) fails to compile on OSX due to use of the thread local variable t_logThreadName (Common.*).

Basically MachO executable files do not contain an area for thread local storage (unlike ELF).

Compilation failure:

[ 5%] Building CXX object libethereum/CMakeFiles/ethereum.dir/AddressState.cpp.o
In file included from /Users/dan/Sources/GitClones/cpp-ethereum-HEAD/libethereum/AddressState.cpp:22:
In file included from /Users/dan/Sources/GitClones/cpp-ethereum-HEAD/libethereum/AddressState.h:24:
/Users/dan/Sources/GitClones/cpp-ethereum-HEAD/libethereum/Common.h:154:8: error: thread-local storage is unsupported for the current target
extern thread_local std::string t_logThreadName;
^
1 error generated.

Further information can be found here:

http://lifecs.likai.org/2010/05/mac-os-x-thread-local-storage.html

MKTX leaves no trace?

Per the spec at https://ethereum.etherpad.mozilla.org/5? :

"
... MKTX ...
Immediately executes a transaction...
NOTE: This transaction is not queued; full ramifications take effect immediately, including balance transfers and any contract invokations.
"

Does this mean that MKTX updates balances but leaves no corresponding transaction in the blockchain?

Doesn't that make it impossible to determine how ethers got to where they are today?

Crash when address is already in use

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
  what():  bind: Address already in use
Aborted (core dumped)

Instead of terminating the application when another instance of Ethereum is already running, a pop-up message would be better, so the user can kill the other process.

make error:sha.h: No such file or directory

os:ubuntu 12.04.3
gcc:4.8.1
cpp-ethereum/build$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jeffrey/Git/cpp-ethereum/build
Scanning dependencies of target ethereum
[ 4%] Building CXX object libethereum/CMakeFiles/ethereum.dir/PeerNetwork.cpp.o
[ 8%] Building CXX object libethereum/CMakeFiles/ethereum.dir/BlockChain.cpp.o
[ 12%] Building CXX object libethereum/CMakeFiles/ethereum.dir/State.cpp.o
/home/jeffrey/Git/cpp-ethereum/libethereum/State.cpp:30:17: fatal error: sha.h: No such file or directory
#include <sha.h>
^
compilation terminated.
make[2]: *** [libethereum/CMakeFiles/ethereum.dir/State.cpp.o] Error 1
make[1]: *** [libethereum/CMakeFiles/ethereum.dir/all] Error 2
make: *** [all] Error 2

Ethereum Protocol overhead looks excessive

Hi,

I'we made a lab:
2 VirtualBox VMs, fresh, connected via internal network, disconnected from the Internet.
Installed Wireshark and Ethereum POC3 in both VMs and connected to each other as peers.
Now what I see in Wireshark is that the Ethernet+IP+TCP overhead is very big compared to the payload.
The actual data (payload) is 10 bytes x3 per second. (10 bytes of data compared to 64 bytes per frame with overhead)
(it does not matter if I run mining or not... just have connected peers)

  1. Why do we need to generate 3 packets per second between peers, if the block generation rate is 60 sec?
  2. Why not consolidate those small packets with huge overhead into something bigger?

Ping me if you need Wireshark traffic capture.
It could cause issues with slow and high-delay links (satellite) ?

-Technologov, 06.Mar.2014.

undefined reference to `eth::FixedHash<32u>::size'

Hey there,

I am not sure if this code is already intended to be compiled but this is what I cannot figure out:

Linking CXX executable eth
../libethereum/libethereum.a(Transaction.cpp.o): In function `eth::FixedHash<20u> eth::RLP::toHash<eth::FixedHash<20u> >(int) const':
Transaction.cpp:(.text._ZNK3eth3RLP6toHashINS_9FixedHashILj20EEEEET_i[_ZNK3eth3RLP6toHashINS_9FixedHashILj20EEEEET_i]+0xc1): undefined reference to `eth::FixedHash<20u>::size'
../libethereum/libethereum.a(BlockInfo.cpp.o): In function `eth::FixedHash<32u> eth::RLP::toHash<eth::FixedHash<32u> >(int) const':
BlockInfo.cpp:(.text._ZNK3eth3RLP6toHashINS_9FixedHashILj32EEEEET_i[_ZNK3eth3RLP6toHashINS_9FixedHashILj32EEEEET_i]+0xc1): undefined reference to `eth::FixedHash<32u>::size'
collect2: error: ld returned 1 exit status
make[2]: *** [eth/eth] Fehler 1
make[1]: *** [eth/CMakeFiles/eth.dir/all] Fehler 2
make: *** [all] Fehler 2

What am I doing wrong here?

Crash on fromUserHex

Assertion failed: function fromUserHex, file Common.cpp, line 102

I'm assuming the user hex I inserted was wrong, but crashing the app is a high price to pay (especially b/c it was the first time I opened the app and I lost my initial wallet and minings).

Strange characters in AlethZero console

While running the AlethZero client, there are strange characters in the GUI console.

alethzero-console-error

This is on a Ubuntu 13.10 Desktop.

note: Ignore the connection error. That is another issue.

Autoscroll Log pane

Configure the Log pane to automatically scroll down with every new line that appears.

Although there needs to be the ability to disable it.

Auto detect Crypto++ version available

On FC20 cryptopp version 5.6.2 is available from the default repository. Would be great to use it.

Here is a patch to autodetect if Crypto++ is available with the correct version. Would be nice if you could merge it (feel free to adapt it if required)

diff -urpN cpp-ethereum-ORIG/CMakeLists.txt cpp-ethereum/CMakeLists.txt
--- cpp-ethereum-ORIG/CMakeLists.txt    2014-02-01 22:02:33.648000000 +0100
+++ cpp-ethereum/CMakeLists.txt 2014-02-01 22:02:44.480000000 +0100
@@ -23,6 +23,53 @@ else ()
        message(FATAL_ERROR "Your C++ compiler does not support C++11.")
 endif ()

+# Look for availabe Crypto++ version and if it is >= 5.6.2
+if(CRYPTOPP_INCLUDE_DIR AND CRYPTOPP_LIBRARIES)
+       set(CRYPTOPP_FOUND TRUE)
+       message(STATUS "Found Crypto++: ${CRYPTOPP_INCLUDE_DIR}, ${CRYPTOPP_LIBRARIES}")
+else()
+       find_path(CRYPTOPP_INCLUDE_DIR cryptlib.h
+               /usr/include/crypto++
+               /usr/include/cryptopp
+               /usr/local/include/crypto++
+               /usr/local/include/cryptopp
+               /opt/local/include/crypto++
+               /opt/local/include/cryptopp
+               )
+       find_library(CRYPTOPP_LIBRARIES NAMES cryptopp
+               PATHS
+               /usr/lib
+               /usr/local/lib
+               /opt/local/lib
+               )
+       if(CRYPTOPP_INCLUDE_DIR AND CRYPTOPP_LIBRARIES)
+               set(CRYPTOPP_FOUND TRUE)
+               message(STATUS "Found Crypto++: ${CRYPTOPP_INCLUDE_DIR}, ${CRYPTOPP_LIBRARIES}")
+               set(_CRYPTOPP_VERSION_HEADER ${CRYPTOPP_INCLUDE_DIR}/config.h)
+               if(EXISTS ${_CRYPTOPP_VERSION_HEADER})
+                       file(STRINGS ${_CRYPTOPP_VERSION_HEADER} _CRYPTOPP_VERSION REGEX "^#define CRYPTOPP_VERSION[ \t]+[0-9]+$")
+                       string(REGEX REPLACE "^#define CRYPTOPP_VERSION[ \t]+([0-9]+)" "\\1" _CRYPTOPP_VERSION ${_CRYPTOPP_VERSION})
+                       if(${_CRYPTOPP_VERSION} LESS 562)
+                               message(STATUS "Crypto++ version found is smaller than 5.6.2. We use ../cryptopp562")
+                               set(CRYPTOPP_INCLUDE_DIR "../cryptopp562" CACHE FILEPATH "" FORCE)
+                               set(CRYPTOPP_LIBRARIES "../cryptopp562" CACHE FILEPATH "" FORCE)
+                       else()
+                               message(STATUS "Crypto++ found and version greater or equal to 5.6.2")
+                       endif()
+               endif()
+       else()
+               set(CRYPTOPP_FOUND TRUE) # Ugly
+               message(STATUS "Crypto++ not found. We use ../cryptopp562")
+               set(CRYPTOPP_INCLUDE_DIR "../cryptopp562" CACHE FILEPATH "" FORCE)
+               set(CRYPTOPP_LIBRARIES "../cryptopp562" CACHE FILEPATH "" FORCE)
+        endif()
+        mark_as_advanced(CRYPTOPP_INCLUDE_DIR CRYPTOPP_LIBRARIES)
+endif()
+
+if(CRYPTOPP_FOUND)
+       include_directories(${CRYPTOPP_INCLUDE_DIR})
+endif()
+
 add_subdirectory(libethereum)
 add_subdirectory(test)
 add_subdirectory(eth)
diff -urpN cpp-ethereum-ORIG/eth/CMakeLists.txt cpp-ethereum/eth/CMakeLists.txt
--- cpp-ethereum-ORIG/eth/CMakeLists.txt        2014-02-01 22:02:33.647000000 +0100
+++ cpp-ethereum/eth/CMakeLists.txt     2014-02-01 22:02:53.938000000 +0100
@@ -5,9 +5,6 @@ aux_source_directory(. SRC_LIST)
 include_directories(../../secp256k1/include)
 link_directories(../../secp256k1)

-include_directories(../../cryptopp562)
-link_directories(../../cryptopp562)
-
 include_directories(../libethereum)
 link_directories(../libethereum)

diff -urpN cpp-ethereum-ORIG/libethereum/CMakeLists.txt cpp-ethereum/libethereum/CMakeLists.txt
--- cpp-ethereum-ORIG/libethereum/CMakeLists.txt        2014-02-01 22:02:33.642000000 +0100
+++ cpp-ethereum/libethereum/CMakeLists.txt     2014-02-01 22:03:00.918000000 +0100
@@ -3,9 +3,6 @@ cmake_policy(SET CMP0015 NEW)
 include_directories(../../secp256k1/include)
 link_directories(../../secp256k1)

-include_directories(../../cryptopp562)
-link_directories(../../cryptopp562)
-
 aux_source_directory(. SRC_LIST)
 add_library(ethereum ${SRC_LIST})

diff -urpN cpp-ethereum-ORIG/test/CMakeLists.txt cpp-ethereum/test/CMakeLists.txt
--- cpp-ethereum-ORIG/test/CMakeLists.txt       2014-02-01 22:02:33.647000000 +0100
+++ cpp-ethereum/test/CMakeLists.txt    2014-02-01 22:03:07.475000000 +0100
@@ -5,9 +5,6 @@ aux_source_directory(. SRC_LIST)
 include_directories(../../secp256k1/include)
 link_directories(../../secp256k1)

-include_directories(../../cryptopp562)
-link_directories(../../cryptopp562)
-
 include_directories(../libethereum)
 link_directories(../libethereum)

Inconsistency in BLK_NONCE instruction

This returns the nonce of the previous block. The whitepaper says (incorrectly?) it should return the nonce of the current block. Wouldn't it be clearer and more consistent to name this BLK_PREVNONCE in keeping with BLK_PREVHASH?

Building fail on ubuntu 13.10 (secp256k1 problem)

Linking CXX executable testeth
cd /home/pawel/cpp-ethereum-build/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testeth.dir/link.txt --verbose=3
/usr/bin/c++ -Wall -std=c++11 -O4 -DNDEBUG CMakeFiles/testeth.dir/dagger.cpp.o CMakeFiles/testeth.dir/peer.cpp.o CMakeFiles/testeth.dir/rlp.cpp.o CMakeFiles/testeth.dir/trie.cpp.o CMakeFiles/testeth.dir/main.cpp.o CMakeFiles/testeth.dir/crypto.cpp.o CMakeFiles/testeth.dir/hexPrefix.cpp.o CMakeFiles/testeth.dir/state.cpp.o -o testeth -L/home/pawel/cryptopp562/libcryptopp.a -L/home/pawel/cpp-ethereum/test/../libethereum -rdynamic /home/pawel/cryptopp562/libcryptopp.a -lboost_system -lboost_filesystem -lpthread ../libethereum/libethereum.a ../secp256k1/libsecp256k1.a -lminiupnpc -lgmp -lleveldb /home/pawel/cryptopp562/libcryptopp.a -lboost_system -lboost_filesystem -lpthread -lgmp -Wl,-rpath,/home/pawel/cryptopp562/libcryptopp.a:/home/pawel/cpp-ethereum/test/../libethereum
../secp256k1/libsecp256k1.a(secp256k1.c.o): In function secp256k1_ecmult': secp256k1.c:(.text+0x3fd1): undefined reference tompn_copyi'
../secp256k1/libsecp256k1.a(secp256k1.c.o): In function secp256k1_ecdsa_sig_sign.constprop.13': secp256k1.c:(.text+0x75e0): undefined reference tompn_copyi'
secp256k1.c:(.text+0x769f): undefined reference to mpn_copyi' ../secp256k1/libsecp256k1.a(secp256k1.c.o): In functionsecp256k1_ecdsa_verify':
secp256k1.c:(.text+0x834d): undefined reference to mpn_copyi' secp256k1.c:(.text+0x83fe): undefined reference tompn_copyi'
../secp256k1/libsecp256k1.a(secp256k1.c.o):secp256k1.c:(.text+0xa81b): more undefined references to mpn_copyi' follow collect2: error: ld returned 1 exit status make[2]: *** [test/testeth] Error 1 make[2]: Leaving directory/home/pawel/cpp-ethereum-build'
make[1]: *** [test/CMakeFiles/testeth.dir/all] Błąd 2
make[1]: Leaving directory `/home/pawel/cpp-ethereum-build'
make: *** [all] Error 2

Also this issue was deleted, so it's google webcache url:
http://webcache.googleusercontent.com/search?q=cache:9Fmv-S36Cx0J:https://github.com/sipa/secp256k1/issues/18+&cd=1&hl=pl&ct=clnk&gl=pl

alpehzero does not launch

I get the following o/p -
$ sudo ./alephzero
Opened blockchain db. Latest: b2579caa489a929ce383cf3ddbfa9515d860382df667195ab0ff64dac88de74c

However, alephzero fails to launch, compiling in QT it says
Opened blockchain db. Latest: b2579caa489a929ce383cf3ddbfa9515d860382df667195ab0ff64dac88de74c
The program has unexpectedly finished.

I tried with both git and poc versions. Thanks

Client freezes when trying to connect

The current client freezes several minutes when it tries to connect to a node whose 30303 port is blocked, which means if several nodes with blocked port are connected, startup takes very long.

To fix this you need to either do the connecting in different threads or set a short timeout.

Can not make on Mac OSX 10.8.5

I get the following when executing "make -j6":

Current source dir: /Users/xxxxxxx/Public/htdocs/cpp-ethereum
Current binary dir: /Users/xxxxxxxx/Public/htdocs/cpp-ethereum/build
Build type: Darwin/unknown
Build platform:
[ 2%] [ 5%] Built target secp256k1
Automoc for target AlethZero
Commit hash: 02f843b (Clean: 0 - 1 file changed, 4 insertions(+), 2 deletions(-))
[ 5%] Built target BuildInfo.h
[ 5%] Built target AlethZero_automoc
Linking CXX shared library libethereum.dylib
Undefined symbols for architecture x86_64:
"leveldb::DB::Open(leveldb::Options const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, leveldb::DB*)", referenced from:
eth::BlockChain::BlockChain(std::1::basic_string<char, std::1::char_traits, std::1::allocator >, bool) in BlockChain.cpp.o
eth::State::openDB(std::1::basic_string<char, std::1::char_traits, std::1::allocator >, bool) in State.cpp.o
"std::string::compare(std::string const&) const", referenced from:
CryptoPP::AuthenticatedEncryptionFilter::ChannelCreatePutSpace(std::string const&, unsigned long&) in libcryptopp.a(filters.o)
CryptoPP::AuthenticatedEncryptionFilter::ChannelPut2(std::string const&, unsigned char const
, unsigned long, int, bool) in libcryptopp.a(filters.o)
CryptoPP::AuthenticatedDecryptionFilter::ChannelCreatePutSpace(std::string const&, unsigned long&) in libcryptopp.a(filters.o)
CryptoPP::AuthenticatedDecryptionFilter::ChannelPut2(std::string const&, unsigned char const
, unsigned long, int, bool) in libcryptopp.a(filters.o)
CryptoPP::EqualityComparisonFilter::MapChannel(std::string const&) const in libcryptopp.a(mqueue.o)
"std::istream::read(char
, long)", referenced from:
CryptoPP::operator>>(std::istream&, CryptoPP::Integer&) in libcryptopp.a(integer.o)
"std::istream::putback(char)", referenced from:
CryptoPP::operator>>(std::istream&, CryptoPP::Integer&) in libcryptopp.a(integer.o)
"std::string::Rep::M_destroy(std::allocator const&)", referenced from:
CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::HashTransformation>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::MessageAuthenticationCode>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::Clonable::Clone() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::IVSize() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::Resynchronize(unsigned char const
, int) in libcryptopp.a(iterhash.o)
...
"std::string::Rep::S_empty_rep_storage", referenced from:
CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::HashTransformation>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::MessageAuthenticationCode>::Update(unsigned char const
, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::Update(unsigned char const, unsigned long) in libcryptopp.a(iterhash.o)
CryptoPP::Clonable::Clone() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::IVSize() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::Resynchronize(unsigned char const, int) in libcryptopp.a(iterhash.o)
...
"std::string::append(char const, unsigned long)", referenced from:
CryptoPP::SimpleKeyingInterface::IVSize() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::Resynchronize(unsigned char const, int) in libcryptopp.a(iterhash.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::ThrowIfResynchronizable() in libcryptopp.a(cryptlib.o)
CryptoPP::SimpleKeyingInterface::ThrowIfInvalidIV(unsigned char const) in libcryptopp.a(cryptlib.o)
CryptoPP::SimpleKeyingInterface::ThrowIfInvalidIVLength(int) in libcryptopp.a(cryptlib.o)
CryptoPP::StreamTransformation::ProcessLastBlock(unsigned char_, unsigned char const_, unsigned long) in libcryptopp.a(cryptlib.o)
...
"std::string::append(std::string const&)", referenced from:
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const_, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(iterhash.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long long, unsigned int) in libcryptopp.a(cryptlib.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const_, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(cryptlib.o)
...
"std::string::append(unsigned long, char)", referenced from:
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long long, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(sha3.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(pubkey.o)
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(osrng.o)
...
"std::string::assign(char const_, unsigned long)", referenced from:
CryptoPP::BERDecodeTextString(CryptoPP::BufferedTransformation&, std::string&, unsigned char) in libcryptopp.a(asn.o)
"std::string::assign(std::string const&)", referenced from:
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long long, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(sha3.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(pubkey.o)
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(osrng.o)
...
"std::string::replace(unsigned long, unsigned long, char const_, unsigned long)", referenced from:
CryptoPP::StringSinkTemplatestd::string::Put2(unsigned char const_, unsigned long, int, bool) in libcryptopp.a(dll.o)
"std::string::reserve(unsigned long)", referenced from:
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const_, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(iterhash.o)
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long long, unsigned int) in libcryptopp.a(cryptlib.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const_, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(cryptlib.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const_, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(sha3.o)
...
"std::string::push_back(char)", referenced from:
CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImplCryptoPP::Integer >, CryptoPP::DL_GroupParameters_IntegerBased>::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_GroupParameters_EC<CryptoPP::ECP, CryptoPP::DL_GroupParametersCryptoPP::ECPPoint >::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N, CryptoPP::DL_GroupParametersCryptoPP::EC2NPoint >::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP >, CryptoPP::DL_PublicKeyCryptoPP::ECPPoint >::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N >, CryptoPP::DL_PublicKeyCryptoPP::EC2NPoint >::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP >, CryptoPP::DL_PrivateKeyCryptoPP::ECPPoint >::Assignable() in libcryptopp.a(dll.o)
CryptoPP::GetValueHelperClassCryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N >, CryptoPP::DL_PrivateKeyCryptoPP::EC2NPoint >::Assignable() in libcryptopp.a(dll.o)
...
"std::basic_string<char, std::char_traits, std::allocator >::basic_string(char const_, std::allocator const&)", referenced from:
CryptoPP::Clonable::Clone() const in libcryptopp.a(iterhash.o)
CryptoPP::Algorithm::AlgorithmName() const in libcryptopp.a(iterhash.o)
CryptoPP::Algorithm::Algorithm(bool) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned int, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long long, unsigned int) in libcryptopp.a(cryptlib.o)
std::string CryptoPP::IntToString(unsigned long, unsigned int) in libcryptopp.a(cryptlib.o)
...
"std::basic_string<char, std::char_traits, std::allocator >::basic_string(std::string const&)", referenced from:
CryptoPP::Clonable::Clone() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::IVSize() const in libcryptopp.a(iterhash.o)
CryptoPP::SimpleKeyingInterface::Resynchronize(unsigned char const_, int) in libcryptopp.a(iterhash.o)
CryptoPP::HashInputTooLong::HashInputTooLong(std::string const&) in libcryptopp.a(iterhash.o)
CryptoPP::Algorithm::Algorithm(bool) in libcryptopp.a(cryptlib.o)
CryptoPP::SimpleKeyingInterface::ThrowIfResynchronizable() in libcryptopp.a(cryptlib.o)
CryptoPP::SimpleKeyingInterface::ThrowIfInvalidIV(unsigned char const_) in libcryptopp.a(cryptlib.o)
...
"std::basic_string<char, std::char_traits, std::allocator >::~basic_string()", referenced from:
_GLOBAL__I_a in libcryptopp.a(cryptlib.o)
"std::basic_string<char, std::char_traits, std::allocator >::~basic_string()", referenced from:
CryptoPP::HashInputTooLong::~HashInputTooLong() in libcryptopp.a(iterhash.o)
CryptoPP::Exception::~Exception() in libcryptopp.a(iterhash.o)
CryptoPP::Exception::~Exception() in libcryptopp.a(iterhash.o)
CryptoPP::NotImplemented::~NotImplemented() in libcryptopp.a(iterhash.o)
CryptoPP::NotImplemented::~NotImplemented() in libcryptopp.a(iterhash.o)
std::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char const
, std::basic_string<char, std::char_traits, std::allocator > const&) in libcryptopp.a(iterhash.o)
CryptoPP::HashInputTooLong::~HashInputTooLong() in libcryptopp.a(iterhash.o)
...
"std::ios_base::Init::Init()", referenced from:
__GLOBAL__I_a in libcryptopp.a(dll.o)
__GLOBAL__I_a in libcryptopp.a(gf2n.o)
__GLOBAL__I_a in libcryptopp.a(integer.o)
"std::ios_base::Init::~Init()", referenced from:
__GLOBAL__I_a in libcryptopp.a(dll.o)
__GLOBAL__I_a in libcryptopp.a(gf2n.o)
__GLOBAL__I_a in libcryptopp.a(integer.o)
"std::basic_ostream<char, std::char_traits >& std::_ostream_insert<char, std::char_traits >(std::basic_ostream<char, std::char_traits >&, char const, long)", referenced from:
CryptoPP::operator<<(std::ostream&, CryptoPP::PolynomialMod2 const&) in libcryptopp.a(gf2n.o)
CryptoPP::operator<<(std::ostream&, CryptoPP::Integer const&) in libcryptopp.a(integer.o)
"std::_throw_length_error(char const)", referenced from:
std::vector<CryptoPP::WindowSlider, std::allocatorCryptoPP::WindowSlider >::reserve(unsigned long) in libcryptopp.a(dll.o)
std::vector<CryptoPP::BaseAndExponent<CryptoPP::Integer, CryptoPP::Integer>, std::allocator<CryptoPP::BaseAndExponent<CryptoPP::Integer, CryptoPP::Integer> > >::reserve(unsigned long) in libcryptopp.a(dll.o)
std::vector<CryptoPP::BaseAndExponent<CryptoPP::EC2NPoint, CryptoPP::Integer>, std::allocator<CryptoPP::BaseAndExponent<CryptoPP::EC2NPoint, CryptoPP::Integer> > >::reserve(unsigned long) in libcryptopp.a(dll.o)
std::vector<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer>, std::allocator<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer> > >::reserve(unsigned long) in libcryptopp.a(dll.o)
std::vector<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer>, std::allocator<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer> > >::M_insert_aux(__gnu_cxx::__normal_iterator<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer>, std::vector<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer>, std::allocator<CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer> > > >, CryptoPP::BaseAndExponent<CryptoPP::ECPPoint, CryptoPP::Integer> const&) in libcryptopp.a(dll.o)
std::vector<CryptoPP::ECPPoint, std::allocatorCryptoPP::ECPPoint >::_M_insert_aux(__gnu_cxx::_normal_iterator<CryptoPP::ECPPoint, std::vector<CryptoPP::ECPPoint, std::allocatorCryptoPP::ECPPoint > >, CryptoPP::ECPPoint const&) in libcryptopp.a(dll.o)
std::vector<CryptoPP::ECPPoint, std::allocatorCryptoPP::ECPPoint >::_M_fill_insert(__gnu_cxx::__normal_iterator<CryptoPP::ECPPoint*, std::vector<CryptoPP::ECPPoint, std::allocatorCryptoPP::ECPPoint > >, unsigned long, CryptoPP::ECPPoint const&) in libcryptopp.a(dll.o)
...
"std::basic_istream<char, std::char_traits >& std::ws<char, std::char_traits >(std::basic_istream<char, std::char_traits >&)", referenced from:
CryptoPP::operator>>(std::istream&, CryptoPP::Integer&) in libcryptopp.a(integer.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libethereum/libethereum.dylib] Error 1
make[1]: *** [libethereum/CMakeFiles/ethereum.dir/all] Error 2
make: *** [all] Error 2

alephzero, SIGSEGV in eth::GenericTrieDB<eth::Overlay>::iterator::at() const ()

Master branch on fedora 20 64bits I get

Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffecdde700 (LWP 3822)]
Opened blockchain db. Latest: b2579caa489a929ce383cf3ddbfa9515d860382df667195ab0ff64dac88de74c
[New Thread 0x7fffe7fff700 (LWP 3823)]
[New Thread 0x7fffe77fe700 (LWP 3824)]
Detaching after fork from child process 3825.

Program received signal SIGSEGV, Segmentation fault.
0x00000000004314a5 in eth::GenericTrieDBeth::Overlay::iterator::at() const ()

I works fine with the poc-1 branch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.