What is Nostr?
Peter Vessenes [ARCHIVE] /
npub1ezg…r8pt
2023-06-07 03:14:26
in reply to nevent1q…08g6

Peter Vessenes [ARCHIVE] on Nostr: 📅 Original date posted:2012-03-22 📝 Original message:This conversation reminds ...

📅 Original date posted:2012-03-22
📝 Original message:This conversation reminds me that I'd like to see a comprehensive list of
tests that alt processors / generators can run against.

I haven't looked in the client code for some time, but does that exist now?
That would be a nice 'I want to help' early project, getting together
inputs and expected outputs / stack states for implementers to check
against.

As it is right now, we've split our codebase a bit; we rely on the client
to check the validity of a transaction, the balance of a given address, and
converse with the network, but we have written most of our own code for
stuff like block gen; I expect we will also do that for transaction
creation.

Peter



2012/3/22 Michael Grønager <gronager at ceptacle.com>

> What you list below was actually the plan - just havn't gotten there yet,
> but it will be dead easy.
>
> /M
>
>
> On 22/03/2012, at 11:50, Martinx - ジェームズ wrote:
>
> > Michael,
> >
> > Since libcoin is "chain agnostic", I was wondering if the project can
> be used like this:
> >
> > When I install it with "make install", I would like to have something
> like this:
> >
> > Regular file: /usr/local/bin/libcoincore # or whatever you like
> >
> > Symlink -> Regular file
> >
> > /usr/local/bit/bitcoind -> /usr/local/bin/libcoincore # bitcoind is a
> symlink to libcoincore
> >
> > /usr/local/bit/litecoind -> /usr/local/bin/libcoincore # litecoind is
> a symlink to libcoincore
> >
> > /usr/local/bit/devcoind -> /usr/local/bin/libcoincore # devcoind is a
> symlink to libcoincore
> >
> > /usr/local/bit/namecoind -> /usr/local/bin/libcoincore # devcoind is
> a symlink to libcoincore
> >
> > ...and so on...
> >
> > So, libcoincore will interpret the ARGV[0] and, for each string, it
> will initiate the appropriate internal functions...
> >
> > I don't know if Libcoin already does something like that... I'm not a
> developer/code reader... Just a small nerd with big ideas... ^_^
> >
> > Thanks!
> > Thiago
> >
> > 2012/2/28 Michael Grønager <gronager at ceptacle.com>
> > Hi again - and thanks for testing and finding this!
> >
> > I have fixed the bug you reported:
> >
> > The culprit was an implicit string constructor for the ChainAddress that
> caused creation of a not fully initialized ChainAddress. The right way to
> do it is using chain::getAddress(string) as the ChainAddress is chain
> specific.
> >
> > A git pull will fix it ;)
> >
> > Cheers,
> >
> > Michael
> >
> >
> > On 27/02/2012, at 20:03, Martinx - ジェームズ wrote:
> >
> > > AWESOME!! Thank you!!
> > >
> > > Anyway, I found a new problem... lol
> > >
> > > /usr/local/bin/bitcoind getinfo #okay
> > > {
> > > "version" : 40001,
> > > "blocks" : 168753,
> > > "connections" : 8,
> > > "difficulty" : 1376302.26788638,
> > > "testnet" : false
> > > }
> > >
> > > /usr/local/bin/bitcoind getaccountaddress "" # okay...
> > > 1J4vNcvEdeCuLH4yvyoC2gxFEF4zquoJ87
> > >
> > > /usr/local/bin/bitcoind listaccounts # NOT okay...
> > > {
> > > }
> > >
> > > /usr/local/bin/bitcoind getaccountaddress "teste" # okay
> > > 1E6pGh6AAtuJdFXheZMp1zdYmvdqAQn9QT
> > >
> > > /usr/local/bin/bitcoind listaccounts # NOT okay...
> > > {
> > > "teste" : 0.00000000
> > > }
> > >
> > > Where is my default account listed at "listaccounts" output?!
> > >
> > > Best,
> > > Thiago
> > >
> > > 2012/2/26 Michael Grønager <gronager at ceptacle.com>
> > > And if you do an update now "help" is there too ;)
> > >
> > > /M
> > >
> > > On 25/02/2012, at 03:11, Martinx - ジェームズ wrote:
> > >
> > >> Thank you!!!
> > >>
> > >> It is all working now! Except "help"...
> > >>
> > >> Nice work Michael!!
> > >>
> > >> Best,
> > >> Thiago
> > >>
> > >> 2012/2/24 Michael Grønager <gronager at ceptacle.com>
> > >> OK - didn't took the weekend:
> > >>
> > >> support for "port" is on github now :)
> > >>
> > >> Only took two lines:
> > >>
> > >> ("port", value<unsigned short>(&port)->default_value(8333),
> "Listen on specified port for the p2p protocol")
> > >>
> > >> and using the port option in the Node constructor (was there already):
> > >>
> > >> Node node(chain, data_dir, args.count("nolisten") ? "" :
> "0.0.0.0", lexical_cast<string>(port)); // it is also here we specify the
> use of a proxy!
> > >>
> > >> /M
> > >>
> > >>
> > >>
> > >> On 24/02/2012, at 19:49, Martinx - ジェームズ wrote:
> > >>
> > >>> Hi Michael,
> > >>>
> > >>> Thank you for your attention!
> > >>>
> > >>> Now, I'm trying to start libcoin's bitcoind using high ports but, it
> always try to listen at 8332, no matter what I "say"...
> > >>>
> > >>> Look:
> > >>>
> > >>> $ cat .bitcoin/bitcoin.conf
> > >>> server=1
> > >>> daemon=1
> > >>> rpcuser=libcoin
> > >>> rpcpassword=LibCoin13
> > >>> rpcport=10332
> > >>> port=10333
> > >>>
> > >>> But:
> > >>>
> > >>> /usr/local/bin/bitcoind
> > >>> Error: Address already in use
> > >>>
> > >>> terminate called after throwing an instance of 'DbException'
> > >>> what(): DbEnv::close: Invalid argument
> > >>> Aborted
> > >>>
> > >>> When I "strace it", I can see:
> > >>>
> > >>> ...
> > >>> bind(12, {sa_family=AF_INET, sin_port=htons(8333),
> sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)
> > >>> ...
> > >>>
> > >>> I already tried:
> > >>>
> > >>> /usr/local/bin/bitcoind --rpcport 10332
> > >>> /usr/local/bin/bitcoind --rpcport=10332
> > >>>
> > >>> Without success...
> > >>>
> > >>> Thanks again!
> > >>> Thiago
> > >>>
> > >>> 2012/2/24 Michael Grønager <gronager at ceptacle.com>
> > >>> Hi Thiago,
> > >>>
> > >>> Forgot to comment on the two latter:
> > >>>
> > >>>> $ bitcoind getaccountaddress ""
> > >>>> HTTP error code: 401
> > >>>> Error: couldn't parse reply from server
> > >>>>
> > >>>> $ bitcoind listaccounts
> > >>>> HTTP error code: 401
> > >>>> Error: couldn't parse reply from server
> > >>>>
> > >>>
> > >>> 401 = permission denied - you need to setup username / password
> either on the commandline or in the bicoin.conf file to access those
> commands...
> > >>>
> > >>> See in the bitcoind.cpp file for commands that you can use with and
> without auth...
> > >>>
> > >>> Those that contains an "auth" requires auth:
> > >>>
> > >>> server.registerMethod(method_ptr(new GetBalance(wallet)), auth);
> > >>>
> > >>> As opposed to:
> > >>>
> > >>> server.registerMethod(method_ptr(new GetInfo(node)));
> > >>>
> > >>> auth is defined by:
> > >>>
> > >>> Auth auth(rpc_user, rpc_pass); // if rpc_user and rpc_pass are
> not set, all authenticated methods becomes disallowed.
> > >>>
> > >>> so you just experience the case explained in the comment ;) I admit
> that the output could be more readable, though!
> > >>>
> > >>> /M
> > >>>
> > >>>
> > >>>>
> > >>>> Any tips?! lol
> > >>>>
> > >>>> Thanks!
> > >>>> Thiago
> > >>>>
> > >>>> 2012/2/23 Martinx - ジェームズ <thiagocmartinsc at gmail.com>
> > >>>> AWESOME!!!
> > >>>>
> > >>>> I can compile libcoin at my Ubuntu 11.10... I just need to install:
> > >>>>
> > >>>> sudo aptitude install libboost1.46-all-dev
> > >>>>
> > >>>> ...alongside with another already installed dependencies, and now
> it works!!
> > >>>>
> > >>>> Thank you!
> > >>>> Thiago
> > >>>>
> > >>>> 2012/2/23 Michael Grønager <gronager at ceptacle.com>
> > >>>> Hi Martinx,
> > >>>>
> > >>>> Another note:
> > >>>>
> > >>>> boost 1.42 and openssl 1.0 has a conflict (you will see it when you
> try to compile coinHTTP with that specific combination: sslv2 has been
> removed from openssl, but boost still references it.)
> > >>>>
> > >>>> You should do a :
> > >>>>
> > >>>> sudo apt-get upgrade libboost-dev-all
> > >>>>
> > >>>> to get the 1.46.1 library
> > >>>>
> > >>>> /M
> > >>>>
> > >>>>
> > >>>> On 23/02/2012, at 18:31, Martinx - ジェームズ wrote:
> > >>>>
> > >>>>> Hi Michael!
> > >>>>>
> > >>>>> Thank you for libcoin! It is a awesome evolution for Bitcoin and
> for the CryptoCurrencies as a hole... Thanks!!!
> > >>>>>
> > >>>>> Anyway, I am unable to compile libcoin under my Ubuntu 11.04. At
> this machine, I have compiled and running Bitcoin (from sources), Namecoin,
> Devcoin, Litecoin, IXcoin and I0coin, all from sources but, when I try to
> compile libcoin, I got:
> > >>>>>
> > >>>>> ----
> > >>>>> user at desk:~/libcoin$ ./configure
> > >>>>> -- The C compiler identification is GNU
> > >>>>> -- The CXX compiler identification is GNU
> > >>>>> -- Check for working C compiler: /usr/bin/gcc
> > >>>>> -- Check for working C compiler: /usr/bin/gcc -- 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
> > >>>>> -- Looking for include files CMAKE_HAVE_PTHREAD_H
> > >>>>> -- Looking for include files CMAKE_HAVE_PTHREAD_H - 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
> > >>>>> -- Looking for XOpenDisplay in
> /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so
> > >>>>> -- Looking for XOpenDisplay in
> /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found
> > >>>>> -- Looking for gethostbyname
> > >>>>> -- Looking for gethostbyname - found
> > >>>>> -- Looking for connect
> > >>>>> -- Looking for connect - found
> > >>>>> -- Looking for remove
> > >>>>> -- Looking for remove - found
> > >>>>> -- Looking for shmat
> > >>>>> -- Looking for shmat - found
> > >>>>> -- Looking for IceConnectionNumber in ICE
> > >>>>> -- Looking for IceConnectionNumber in ICE - found
> > >>>>> -- Found X11: /usr/lib/i386-linux-gnu/libX11.so
> > >>>>> -- Boost version: 1.42.0
> > >>>>> -- Found the following Boost libraries:
> > >>>>> -- date_time
> > >>>>> -- regex
> > >>>>> -- filesystem
> > >>>>> -- system
> > >>>>> -- program_options
> > >>>>> -- thread
> > >>>>> -- Found OpenSSL: /usr/lib/libssl.so;/usr/lib/libcrypto.so
> > >>>>> -- Looking for Q_WS_X11
> > >>>>> -- Looking for Q_WS_X11 - found
> > >>>>> -- Looking for Q_WS_WIN
> > >>>>> -- Looking for Q_WS_WIN - not found.
> > >>>>> -- Looking for Q_WS_QWS
> > >>>>> -- Looking for Q_WS_QWS - not found.
> > >>>>> -- Looking for Q_WS_MAC
> > >>>>> -- Looking for Q_WS_MAC - not found.
> > >>>>> -- Found Qt-Version 4.7.2 (using /usr/bin/qmake)
> > >>>>> -- Found wxWidgets: TRUE
> > >>>>>
> > >>>>> The build system is configured to install libraries to
> /usr/local/lib
> > >>>>> Your applications may not be able to find your installed libraries
> unless you:
> > >>>>> set your LD_LIBRARY_PATH (user specific) or
> > >>>>> update your ld.so configuration (system wide)
> > >>>>> You have an ld.so.conf.d directory on your system, so if you wish
> to ensure that
> > >>>>> applications find the installed libcoin libraries, system wide,
> you could install an
> > >>>>> libcoin specific ld.so configuration with:
> > >>>>> sudo make install_ld_conf
> > >>>>>
> > >>>>> -- Configuring done
> > >>>>> -- Generating done
> > >>>>> -- Build files have been written to: /home/user/libcoin
> > >>>>> ----
> > >>>>>
> > >>>>> Now I tried make, without success:
> > >>>>>
> > >>>>> ----
> > >>>>> .....
> > >>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0xf):
> undefined reference to `BN_init'
> > >>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x1e):
> undefined reference to `BN_copy'
> > >>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x38):
> undefined reference to `BN_set_negative'
> > >>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x4f):
> undefined reference to `BN_clear_free'
> > >>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0xd3):
> undefined reference to `BN_clear_free'
> > >>>>> ../../lib/libcoin.a(Script.o): In function `operator<<(CBigNum
> const&, unsigned int)':
> > >>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&,
> unsigned int)]+0x16): undefined reference to `BN_init'
> > >>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&,
> unsigned int)]+0x2c): undefined reference to `BN_lshift'
> > >>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&,
> unsigned int)]+0xad): undefined reference to `BN_clear_free'
> > >>>>> ../../lib/libcoin.a(Script.o): In function `operator>>(CBigNum
> const&, unsigned int)':
> > >>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&,
> unsigned int)]+0xf): undefined reference to `BN_init'
> > >>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&,
> unsigned int)]+0x1e): undefined reference to `BN_copy'
> > >>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&,
> unsigned int)]+0x47): undefined reference to `BN_clear_free'
> > >>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&,
> unsigned int)]+0xcb): undefined reference to `BN_clear_free'
> > >>>>> ../../lib/libcoin.a(Script.o): In function `operator!=(CBigNum
> const&, CBigNum const&)':
> > >>>>> Script.cpp:(.text._ZneRK7CBigNumS1_[operator!=(CBigNum const&,
> CBigNum const&)]+0x14): undefined reference to `BN_cmp'
> > >>>>> ../../lib/libcoin.a(Script.o): In function `operator>(CBigNum
> const&, CBigNum const&)':
> > >>>>> Script.cpp:(.text._ZgtRK7CBigNumS1_[operator>(CBigNum const&,
> CBigNum const&)]+0x14): undefined reference to `BN_cmp'
> > >>>>> ../../lib/libcoin.a(Script.o): In function `uint256
> Hash<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned
> char, std::allocator<unsigned char> > >
> >(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char,
> std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned
> char*, std::vector<unsigned char, std::allocator<unsigned char> > >)':
> > >>>>>
> Script.cpp:(.text._Z4HashIN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEE7uint256T_S8_[uint256
> Hash<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned
> char, std::allocator<unsigned char> > >
> >(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char,
> std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned
> char*, std::vector<unsigned char, std::allocator<unsigned char> >
> >)]+0x6d): undefined reference to `SHA256'
> > >>>>>
> Script.cpp:(.text._Z4HashIN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEE7uint256T_S8_[uint256
> Hash<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned
> char, std::allocator<unsigned char> > >
> >(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char,
> std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned
> char*, std::vector<unsigned char, std::allocator<unsigned char> >
> >)]+0xb8): undefined reference to `SHA256'
> > >>>>> collect2: ld returned 1 exit status
> > >>>>> make[2]: *** [bin/bitcoind] Error 1
> > >>>>> make[1]: ***
> [applications/bitcoind/CMakeFiles/app_bitcoind.dir/all] Error 2
> > >>>>> make: *** [all] Error 2
> > >>>>> -----
> > >>>>>
> > >>>>> What can I do?!
> > >>>>>
> > >>>>> Best,
> > >>>>> Thiago
> > >>>>>
> > >>>>>
> > >>>>> On 1 February 2012 12:18, Michael Grønager <gronager at ceptacle.com>
> wrote:
> > >>>>> Dear Bitcoiners,
> > >>>>>
> > >>>>> libcoin is now in a state ready for its first release, which I
> would like to share with you!
> > >>>>>
> > >>>>> === libcoin is a crypto currency library based on the
> bitcoin/bitcoin "Satoshi" client. ===
> > >>>>>
> > >>>>> Copenhagen, Denmark - 1st February 2012 Ceptacle announces the
> release of the first version of the crypto currency library "libcoin" based
> on the bitcoin/bitcoin "Satoshi" client.
> > >>>>>
> > >>>>> libcoin also maintains a version of bitcoind that is a 100%
> compatible drop-in replacement of the bitcoin/bitcoind client: You can use
> it on the same computer on the same files and you can call it with the same
> scripts. And you can easily extend it without touching the basic bitcoin
> source files.
> > >>>>>
> > >>>>> The libcoin/bitcoind client downloads the entire block chain 3.5
> times faster than the bitcoin/bitcoind client. This is less than 90 minutes
> on a modern laptop!
> > >>>>>
> > >>>>> In libcoin, the Satoshi client code has been completely
> refactored, properly encapsulating classes, removing all globals, moving
> from threads and mutexes to a pure asynchronous approach. Functionalities
> have been divided into logical units and libraries, minimizing dependencies
> for e.g. thin clients.
> > >>>>>
> > >>>>> libcoin is chain agnostic, all chain (bitcoin, testnet, namecoin,
> litecoin, ...) specific settings are maintained from a single class (Chain)
> and hence experiments with chain settings, mining, security and digital
> currencies for research and educational purposes are easily accessible. See
> the ponzicoin example for how you define your own chain.
> > >>>>>
> > >>>>> The build system of libcoin is based on CMake and supports builds
> of static and dynamic libraries on Linux, Mac OS X, and Windows.
> > >>>>>
> > >>>>> The libcoin license is LGPL v. 3. This mean that you can use it in
> open source as well as in commercial projects, but improvements should go
> back into the libcoin library.
> > >>>>>
> > >>>>> ======
> > >>>>>
> > >>>>> Read more on libcoin on: http://github.com/ceptacle/libcoin/wiki
> > >>>>>
> > >>>>> Join libcoin on twitter: http://twitter.com/libcoin
> > >>>>>
> > >>>>> Download "libcoin Satoshi release":
> http://github.com/ceptacle/libcoin/zipball/v0.4.0.1
> > >>>>>
> > >>>>> Best regards,
> > >>>>>
> > >>>>> Michael Gronager, PhD
> > >>>>> Director, Ceptacle
> > >>>>> Jens Juels Gade 33
> > >>>>> 2100 Copenhagen E
> > >>>>> Mobile: +45 31 45 14 01
> > >>>>> E-mail: gronager at ceptacle.com
> > >>>>> Web: http://www.ceptacle.com/
> > >>>>>
> > >>>>>
> > >>>>>
> ------------------------------------------------------------------------------
> > >>>>> Keep Your Developer Skills Current with LearnDevNow!
> > >>>>> The most comprehensive online learning library for Microsoft
> developers
> > >>>>> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3,
> MVC3,
> > >>>>> Metro Style Apps, more. Free future releases when you subscribe
> now!
> > >>>>> http://p.sf.net/sfu/learndevnow-d2d
> > >>>>> _______________________________________________
> > >>>>> Bitcoin-development mailing list
> > >>>>> Bitcoin-development at lists.sourceforge.net
> > >>>>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> > >>>>>
> > >>>>
> > >>>> Michael Gronager, PhD
> > >>>> Director, Ceptacle
> > >>>> Jens Juels Gade 33
> > >>>> 2100 Copenhagen E
> > >>>> Mobile: +45 31 45 14 01
> > >>>> E-mail: gronager at ceptacle.com
> > >>>> Web: http://www.ceptacle.com/
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>>
> > >>
> > >> Michael Gronager, PhD
> > >> Director, Ceptacle
> > >> Jens Juels Gade 33
> > >> 2100 Copenhagen E
> > >> Mobile: +45 31 45 14 01
> > >> E-mail: gronager at ceptacle.com
> > >> Web: http://www.ceptacle.com/
> > >>
> > >>
> > >
> > > Michael Gronager, PhD
> > > Director, Ceptacle
> > > Jens Juels Gade 33
> > > 2100 Copenhagen E
> > > Mobile: +45 31 45 14 01
> > > E-mail: gronager at ceptacle.com
> > > Web: http://www.ceptacle.com/
> > >
> > >
> >
> > Michael Gronager, PhD
> > Director, Ceptacle
> > Jens Juels Gade 33
> > 2100 Copenhagen E
> > Mobile: +45 31 45 14 01
> > E-mail: gronager at ceptacle.com
> > Web: http://www.ceptacle.com/
> >
> >
>
> Michael Gronager, PhD
> Director, Ceptacle
> Jens Juels Gade 33
> 2100 Copenhagen E
> Mobile: +45 31 45 14 01
> E-mail: gronager at ceptacle.com
> Web: http://www.ceptacle.com/
>
>
>
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>



--

Peter J. Vessenes
CEO, CoinLab
M: 206.595.9839
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20120322/337a4904/attachment.html>;
Author Public Key
npub1ezg54d03a7unwu0fckmlugxulukrg06x7jzx4engngxfg79sfcqsn6r8pt