Saturday, June 28, 2014

Get on RespectNetwork and get your XRI name.

Just a little motivation for getting involved with RespectNetwork and grabbing one of their "cloud names" (ie. an XRI) at their great one-time price of $25:

For a while there, I was playing with the APIs for "unhosted" and P2P apps quite a bit, just doing things that seemed fun personally.  I played with Kynetx (founded by my BYU professor Phil Windley) and Singly (founded by Jeremie Miller of XMPP fame), both of which are still very worthwhile projects with huge potential (and you can see from my labels that I've posted about them before).  Other related projects are redecentralize.org and projectdanube.com and cozy.io.  Anyway, the Respect Network in particular is a brainchild of Drummond Reed and it's had a few changes of directions, starting with connect.me, though I look on that activity feed and I don't see much happening there; Drummond Reed and Doc Searls and Kaliya Hamlin and Phil Windley (remember?) are big people in the identity space, eg. the internetidentityworkshop.com conferences, and so I still expect to see big things out of this set of initiatives for owning our own data.  Anyway, my hope is to push for these kinds of tools and protocols to help fight the silos and lock-in of Facebook and even Google... on top of the basic infrastructure tools (eg. pack.resetthenet.org).

Saying all that, I realize that it's not very widespread at this point.  I think they're laying out the protocols and doing cool stuff, but it's still at the experimentation point, I'd say.  But some of the concepts are sticking, eg. these XRI names... I got my first one a few years ago... so I think they're worth getting now.

Sunday, June 8, 2014

Building Bitcoin & Litecoin, Mac & Linux


I'm trying to build my own altcoins (because I want to understand altcoin creation).

First of all, Litecoin is the best place to begin because most altcoin tutorials (eg. here and here and here) use it as the basis.  So I started just by downloading Litecoin source and building it.

On Mac:
  • I started with Homebrew but couldn't ever get past problems with boost:

Undefined symbols for architecture x86_64: "boost::program_options::to_internal(std::string const&amp;)", referenced from: boost::program_options::detail::basic_config_file_iterator<char>::getline(std::string&amp;) in util.o "boost::program_options::detail::common_config_file_iterator::common_config_file_iterator(std::set<std::string std::less="" std::string="">, std::allocator<std::string> &gt; const&amp;, bool)", referenced from: boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::istream&amp;, std::set<std::string std::less="" std::string="">, std::allocator<std::string> &gt; const&amp;, bool) in util.o "Db::verify(char const*, char const*, std::ostream*, unsigned int)", referenced from: CDBEnv::Verify(std::string, bool (*)(CDBEnv&amp;, std::string)) in db.o CDBEnv::Salvage(std::string, bool, std::vector<std::pair char="" std::allocator="" std::vector="" unsigned=""> &gt;, std::vector<unsigned char="" std::allocator="" unsigned=""> &gt; &gt;, std::allocator<std::pair char="" std::allocator="" std::vector="" unsigned=""> &gt;, std::vector<unsigned char="" std::allocator="" unsigned=""> &gt; &gt; &gt; &gt;&amp;) in db.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: *** [litecoind] Error 1</unsigned></std::pair></unsigned></std::pair></std::string></std::string></char></std::string></std::string></char>
  • I tried with Bitcoin with Homebrew and finally got it to build, though "make check" failed.
  • I totally switched to MacPorts and got Bitcoin to build again (including "make check").
  • OK, but I want Litecoin... and again I get problems with boost:

llvm-g++ -c -stdlib=libstdc++ -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DMAC_OSX -DMSG_NOSIGNAL=0 -DBOOST_SPIRIT_THREADSAFE -DUSE_UPNP=1 -DUSE_IPV6=1 -I/Users/tlarson/dev/from-elsewhere/litecoin/src/leveldb/include -I/Users/tlarson/dev/from-elsewhere/litecoin/src/leveldb/helpers -DHAVE_BUILD_INFO -I"/Users/tlarson/dev/from-elsewhere/litecoin/src" -I"/Users/tlarson/dev/from-elsewhere/litecoin/src/obj" -I"/usr/local/include" -I"/usr/local/opt/berkeley-db4/include" -I"/usr/local/opt/openssl/include" -MMD -MF obj/alert.d -o obj/alert.o alert.cpp alert.cpp:6:10: fatal error: 'boost/algorithm/string/classification.hpp' file not found #include <boost algorithm="" classification.hpp="" string=""> ^ 1 error generated. make: *** [obj/alert.o] Error 1 </boost>


On Linux (Ubuntu):

  • Worked, though I had to include all optional items, and also build Berkely DB as instructed in the Bitcoin source and use it here (by setting BDB_INCLUDE_PATH and BDB_LIB_PATH).


I haven't tried Windows yet, since that seems even scarier!