Git Product home page Git Product logo

open-transactions's Introduction

Open-Transactions Library Project

Build Status

The Open-Transactions project is a collaborative effort to develop a robust, commercial-grade, fully-featured, free-software toolkit implementing the OTX protocol as well as a full-strength financial cryptography library, API, CLI, and prototype server. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the Open-Transactions toolkit and its related documentation.

Official Wiki

http://opentransactions.org/

About

Open-Transactions democratizes financial and monetary actions. You can use it for issuing currencies/stock, paying dividends, creating asset accounts, sending/receiving digital cash, writing/depositing cheques, cashier's cheques, creating basket currencies, trading on markets, scripting custom agreements, recurring payments, escrow, etc.

Open-Transactions uses strong crypto. The balances are unchangeable (even by a malicious server.) The receipts are destructible and redundant. The transactions are unforgeable. The cash is untraceable. The cheques are non-repudiable. Etc.

This product includes software developed by Ben Laurie for use in the Lucre project.

Contributing

All development goes in develop branch - please don't submit pull requests to master.

Please do NOT use an editor that automatically reformats.

open-transactions's People

Contributors

albertocabello avatar bluewall avatar bugfreesoftware avatar da2ce7 avatar fellowtraveler avatar keo avatar klzns avatar lclc avatar mahyar138333 avatar martinhbramwell avatar matthewholt3 avatar murrekatt avatar paulrd avatar randy-waterhouse avatar thosmos 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

open-transactions's Issues

OT 0.92 GetDateSigned() issue

When using GetDateSigned(SERVER_ID, USER_ID, ACCOUNT_ID, THE_TRANSACTION) in 0.92 it doesnt return in unix time like it used to.

It seems like something might've gone wrong with changing to time64.

I've tested on 0.92.b and .c (latest commit 3591547).

I'm using the Python SWIG wrapper, in case the issue might just be Python or SWIG related.

Build warnings and error on OS X 10.6.8

Hi,

I am trying to compile OT 0.90.c on Snow Leopard and have the following warnings all over the place:

  CXX      libot_la-OTStorage.lo
i686-apple-darwin10-g++-4.2.1: -lboost_thread-mt: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lboost_date_time-mt: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lboost_system: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lboost_thread-mt: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lboost_date_time-mt: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lboost_system: linker input file unused because linking not done

then it stops at some point with:

  CXX      libot_la-OTString.lo
OTString.cpp: In static member function 'static size_t OTString::safe_strlen(const char*, size_t)':
OTString.cpp:394: error: 'strnlen' was not declared in this scope
make[4]: *** [libot_la-OTString.lo] Error 1

CPU: dual-core 64-bit penryn
OS X: 10.6.8-i386
Xcode: 3.2.6

CFLAGS: -Os -w -pipe -march=core2 -msse4.1 -mmacosx-version-min=10.6
CXXFLAGS: -Os -w -pipe -march=core2 -msse4.1 -mmacosx-version-min=10.6
CPPFLAGS: -I/usr/local/opt/openssl/include -I/usr/local/opt/libtool/include
LDFLAGS: -L/usr/local/opt/openssl/lib -L/usr/local/opt/libtool/lib -L/usr/local/lib -Wl,-headerpad_max_install_names
MAKEFLAGS: -j2
CMAKE_PREFIX_PATH: /usr/local/opt/openssl:/usr/local/opt/autoconf:/usr/local/opt/automake:/usr/local/opt/libtool
MACOSX_DEPLOYMENT_TARGET: 10.6
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
PKG_CONFIG_LIBDIR: /usr/local/lib/pkgconfig:/usr/lib/pkgconfig

Any ideas?

Golang SWIG shared lib question, otapi.go 'missing function body' errors

When using otapi.py, we copy otapi.py and the new _otapi.so to /usr/local/lib/python2.7/site-packages; do I have to copy a shared lib for otapi.go as well? I tried copying libotapi-go.a to $GOPATH/src/otapi/ where I also have otapi.go, but it didn't work.

Also, here's what I get when I go run a simple program that imports otapi.go:

# otapi
../gowork/src/otapi/otapi.go:26: missing function body
../gowork/src/otapi/otapi.go:28: missing function body
../gowork/src/otapi/otapi.go:30: missing function body
../gowork/src/otapi/otapi.go:32: missing function body
../gowork/src/otapi/otapi.go:51: missing function body
../gowork/src/otapi/otapi.go:53: missing function body
../gowork/src/otapi/otapi.go:55: missing function body
../gowork/src/otapi/otapi.go:61: missing function body
../gowork/src/otapi/otapi.go:67: missing function body
../gowork/src/otapi/otapi.go:73: missing function body
../gowork/src/otapi/otapi.go:73: too many errors

Am I missing something or did SWIG mess up?

Smartcontract's param_string comes out empty

the relevant part of my smartcontract is:
if (nState == 3)
{
print("Printing param_string:");
print(param_string);

....
even though I supply a parameter when I trigger the clause,
the otserver console shows the parameter as empty.

Failing to install using autogen.sh on osx 10.9(maverics)

Hi following the INSTALL-OSX-Homebrew.txt, I am getting the following warnings and errors.I think it's failed to find out the macro definitions!!! But after opening the configure.ac I found that the AC_CONFIG_MACRO_DIR([build-aux/m4]) is already set. So why is this happening? Please give me some direction.

Open-Transactions zehadyzbdullahkhan$ brew install --cc=clang --HEAD open-transactions
==> Cloning https://github.com/Open-Transactions/Open-Transactions.git
Updating /Users/zehadyzbdullahkhan/Library/Caches/Homebrew/open-transactions--git
==> sh autogen.sh
configure.ac:73: error: possibly undefined macro: AC_MSG_RESULT
configure.ac:77: error: possibly undefined macro: AC_LANG_PUSH
configure.ac:83: error: possibly undefined macro: AC_LANG_POP
configure.ac:120: error: possibly undefined macro: AC_MSG_ERROR
autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1

READ THIS: https://github.com/Homebrew/homebrew/wiki/troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
https://github.com/open/homebrew-transactions/issues

Cash deposit appears to be broken

I withdrew cash, created a new nym and used the decoded xml from the purse from my old nym. It was done against the same server.

Sorry if this is a fault in my part, as far as I am aware this is how it should work.

Please note the withdrawl was done on Moneychanger and the import was done via the cli. The command is on the last line.


The NymID isn't evident from the purse itself... (listing it is optional.)
The purse may have no Nym at all--it may instead be password-protected.) Either way, a signer nym is still necessary, even for password-protected purses.

Trying MyNym...
OTScriptChai::ExecuteScript:
Caught chaiscript::exception::eval_error:
Can not find appropriate '!=' operator..
File:
Start position, line: 0 column: 0
End position, line: 0 column: 0

Error: "Can not find appropriate '!=' operator." With parameters: (bool, bool) during evaluation at (9016, 9)

from /home/max/.local/lib/opentxs/ot_commands.ot (9016, 9) :

from /home/max/.local/lib/opentxs/ot_commands.ot (9135, 12) :

from /home/max/.local/lib/opentxs/ot_commands.ot (9135, 12) :

from /home/max/.local/lib/opentxs/ot_commands.ot (9162, 12) :

from /home/max/.local/lib/opentxs/ot_commands.ot (9162, 12) :

from /usr/local/bin/opentxs (299, 31) :

from /usr/local/bin/opentxs (299, 21) :

from /usr/local/bin/opentxs (297, 17) :

from /usr/local/bin/opentxs (155, 13) :

from /usr/local/bin/opentxs (143, 9) :

from /usr/local/bin/opentxs (351, 20) :

from /usr/local/bin/opentxs (351, 20) :

from /usr/local/bin/opentxs (349, 13) :

from /usr/local/bin/opentxs (345, 9) :

from /usr/local/bin/opentxs (615, 5) :

from /usr/local/bin/opentxs (622, 1) :

max@ubuntu:~$ opentxs importcash --server oWE1jS7toqhfbveHcBdxmRbxtEEbHTjzYe4beDavUx5 --mynym iCssjAR6Xbp0GfaeP9TIP1m44auuNEbYOh39d7O1Q6J

OTAPI function to set the value of smartcontract variables.

'SmartContract_AddVariable' currently exists, but I would like a function to change the value of a variable on a contract.

This would of course mean replacing the signature, and the function should fail if the contract has been activated.

The value in changing variables is that contract evaluation logic can parse a contract, change things it doesn't like, then sign and return to sender. This would make it easier for autonomous entities to negotiate terms.

How to exit opentxs?

I tried "exit", which opentxs does not recognize. CTRL-C gets me back to the $ prompt but when I try to run opentxs again it tells me the PID exists and I have to manually delete it.

Unit tests not built or run

PR #150 turned off building and running the unit tests. Rather than turning things off we need to resolve what is preventing make distcheck from succeeding.

@randy-waterhouse could you please tell me what you know is missing or wrong with either gtest or the unit tests? I'm ready to address that so we can re-enable tests.

Trying to get the PHP api to work on Ubuntu LAMP stack

What I have done:

  1. Successfully built OT and have a working OTServer with supplied sample data.
  2. Successfully installed a LAMP stack
  3. PHPinfo working in /var/www/html
  4. Within the http://localhost/php_ot_test.php i changed the $path to ~/.ot
  5. Copied over otapi.php to /var/www/html

When I try to bring up php_ot_test.php I a blank screen. I supposedly need otapii.so?

Where would i find this? Is there something I have missed? I'm just trying to get the test page working and communicating with the OTServer which is running using the sample wallet data.

Thanks
John

Found the receipt you're talking about, in ledger in @processNymbox, but the Server's Reply transaction says FAILED.

Hi, I can't do anything in the wallet, some transaction gives an error and I cannot proceed.

I have done refreshnym and refreshacct before this.

x@h-desktop ~/.ot $ opentxs --mynym Hiro --server Stampy.com --myacct CDi16VLguwoOYXT2EgwlPVWYOAp8WLPIzLMEs85rT4d acceptall

Welcome to Open Transactions -- version 0.93
Using as server: rhp367fVGX9XlHTbfPAlFChZM3pCv2Wgp3R8Ji8Q354
Using as mynym: DjF7kZbp4sqyli4kEE8ZAtRdmrYqOHLM61BKDbhM5ay
Using as myacct: CDi16VLguwoOYXT2EgwlPVWYOAp8WLPIzLMEs85rT4d
Using as mypurse: q4ZH5tVGQgGLHDK6DgWr3LwdJwJrA28RqumW4qHSGir

Usage: acceptall --myacct INTO_ACCT

=====>BEGIN Sending getAccountFiles message via ZMQ... Request number: 594
Received server response to getAccountFiles message.

Ledger_FinalizeResponse: transferReceipt, trying to 'remove' an issued number (614) that already wasn't on my issued list. (So what is this in my inbox, then? Maybe need to download a fresh copy of it.)

=====>BEGIN Sending getAccountFiles message via ZMQ... Request number: 595
Received server response to getAccountFiles message.

=====>BEGIN Sending processInbox message via ZMQ... Request number: 596
Received server response: @processInbox

=====>BEGIN Sending getRequest message via ZMQ... Request number: 1
Received new request number from the server: 597. Updating Nym records...

=====>BEGIN Sending getAccountFiles message via ZMQ... Request number: 597
Received server response to getAccountFiles message.

=====>BEGIN Sending getNymbox message via ZMQ... Request number: 598
Received @getNymbox server response (success)

=====>BEGIN Sending processNymbox message via ZMQ... Request number: 599
Received server response: @processNymbox
Found the receipt you're talking about, in ledger in @processNymbox, but the Server's Reply transaction says FAILED.
Utility::getAndProcessNymbox: Failure: processNymbox: error (-1). (It couldn't send. I give up.)
Message error: process_inbox.

accept_from_paymentbox: OT_API_LoadPaymentInbox Failed.

accept_from_paymentbox: OT_API_LoadPaymentInbox Failed.

accept_from_paymentbox: OT_API_LoadPaymentInbox Failed.

x@h-desktop ~/.ot $

OT_ME_NEW.cpp too big

When building this code it consumes in excess of 2Gbyte RAM which causes automated builds on typical VPS to fail or run in to disk-swap, etc h/ware errors.
It needs to be split up or otherwise optimised for a more sensible build size for distributed FOSS project that needs to be able to build across a wide range of platforms.

Moneychanger 'Contacts' crash

Hey folks, new to this so apologies for etiquette and technical mistakes.

First off, I'm using the 0.9c build of OT + Moneychanger, for Windows, created da2ce7. I'm running Windows 8.1. Crash process:

When I press the 'Contacts' button, Moneychanger crashes. Haven't found a log file for this problem.

Otserver.exe crash - 0.9c build of Monechanger + OT

C:\Program Files (x86)\Open-Transactions>otserver.exe


Welcome to Open Transactions... Test Server -- version 0.90.c
(transport build: OTMessage -> OTEnvelope -> ZMQ )

The Winsock 2.2 dll was found okay

Now loading the server nym, which will also ask you for a password, to unlock
its private key.
Using Wallet: notaryServer.xml

Loading Open Transactions server. File version: 2.0
 Last Issued Transaction Number: 5
 Server ID:      drwasho
 Server User ID: XUXbAOTBZBevJDojx4lnZeyBeQng451jqHLC7oul8Yo
OTSymmetricKey::SerializeFrom: Error reading n_is_generated.
Passphrase request for: "We do not have a check hash yet for this password, plea
se enter your password"
(OT) passphrase:
(Verifying) passphrase again:


Loading cachedKey:
*this_is_where_the_cache_key_used_to_be*

OTPseudonym::Loadx509CertAndPrivateKey: (bChecking: is false).  File does not ex
ist: certs in: XUXbAOTBZBevJDojx4lnZeyBeQng451jqHLC7oul8Yo
OTServer::LoadServerUserAndContract: Error loading server certificate and keys.
OTServer::LoadMainFile: Failed calling LoadServerUserAndContract.
OTAsymmetricKey_OpenSSL::SaveCertToString: Error: Unexpected NULL x509. (Returni
ng false.)
OTAsymmetricKey_OpenSSL::SavePrivateKeyToString: Error: !IsPrivate() (This funct
ion should only be called on a private key.)

OTServer::Init: Error in Loading Main File!

OT_ASSERT in ..\..\src\ots\OTServer.cpp at line 1510

C:\Program Files (x86)\Open-Transactions>

Compile error (Gentoo)

Starting with commit 310ea82, attempting to build on Gentoo results in the following error:

Making all in otlib
make[3]: Entering directory /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d_build/tests/otlib' x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/tests/otlib -I../.. -g0 -O0 -fPIC -D_FORTIFY_SOURCE=2 --param ssp-buffer-size=4 -fstack-protector-all -fstack-check -Wstack-protector -std=c++11 -pthread -I/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/include/chai5 -pthread -I../../include -I/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/include -O2 -pipe -march=native -c -o unittests_otlib-Test_OTData.otest -f 'Test_OTData.cpp' || echo '/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/tests/otlib/'Test_OTData.cpp <command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default] <built-in>:0:0: note: this is the location of the previous definition In file included from /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/include/otlib/OTCommon.hpp:10:0, from /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/include/otlib/OTData.hpp:138, from /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/tests/otlib/Test_OTData.cpp:2: /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d/include/otlib/TR1_Wrapper.hpp:7:23: fatal error: ot_config.h: No such file or directory #include "ot_config.h" ^ compilation terminated. make[3]: *** [unittests_otlib-Test_OTData.o] Error 1 make[3]: Leaving directory/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d_build/tests/otlib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d_build/tests' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/var/tmp/portage/app-crypt/Open-Transactions-0.91d/work/Open-Transactions-0.91d_build'
make: *** [all] Error 2

smartcontract.ot crashes

Trying to create a new smart contract by adding a new party "buyer" produces a crash.
TLDR: Error: "Can not find object: stat_partyagents" during evaluation at (369, 29)
Full console log:

Welcome to Open Transactions -- version 0.92.d

Using as server: r1fUoHwJOWCuK3WBAAySjmKYqsG6G2TYIxdqY6YNuuG
Using as mynym: DYEB6U7dcpbwdGrftPnslNKz76BDuBTFAjiAgKaiY2n
Using as myacct: yQGh0vgm9YiqYOh6bfLDxyAA7Nnh2NmturCQmOt4LTo
Using as mypurse: JY7kEFnm2c50CGNphdpgnlVo2hOZuLrBua5cFqWWR9Q

Please paste a smart contract you would like to edit, followed by a ~ on a line by itself.
(Just leave it blank if you want to start fresh.)
~
Creating a new smart contract!

To get started, we'll need a NymID to act as the 'Lawyer'.
(Private key must be available)
I say 'Lawyer' meaning, he doesn't have to actually be one of the PARTIES
to the agreement, he is just here to sign it during construction
(since OT constructs the text itself during the signing process.)
Once the actual parties have signed on to the agreement later on, the 'Lawyer'
signature will have been dropped from the text. It's for editing only.

Acting as 'Lawyer': FT's Test Nym ( DYEB6U7dcpbwdGrftPnslNKz76BDuBTFAjiAgKaiY2n )

Created new smart contract:

-----BEGIN SIGNED SMARTCONTRACT-----
Hash: SAMY

-----BEGIN SMARTCONTRACT SIGNATURE-----
Version: Open Transactions 0.92.d
Comment: http://github.com/FellowTraveler/Open-Transactions/wiki
Meta: SDT9

CoABCzxQm72xDjALFE+vJvQoJNV2Sac0kOSEpKHLhToYDEdfoQRDAi0vl2TcCQUM
Pwwye83rrU/hu90KoJPH9p6luWWYOs0DFX+taCoy0RXexgDdNsnU6kMue411yX8l
Fy+L6LEB+yVzQqHXt1cwDdzhoLrglCiKHmGWbq37JDkQ7cc=
-----END SMARTCONTRACT SIGNATURE-----

This contract has NOT yet been confirmed by all of its parties. (FYI.)

===> Smart contract has 0 bylaws. <===

===> Smart contract has 0 parties. <===

Commands:

v : verbose (shows smart contract in greater detail.)
r : raw (prints raw smart contract to the screen.)
p : Edit parties
b : Edit bylaws
q : quit (it will also output the actual smart contract to the screen.)

You must choose, but choose wisely: p


===> Smart contract has 0 parties. <===

Edit Parties:

a : Add a party
q : return to the previous menu.

Your choice: a

Enter a name for the new party (party_ will be prepended): buyer
-----BEGIN SIGNED SMARTCONTRACT-----
Hash: SAMY

-----BEGIN SMARTCONTRACT SIGNATURE-----
Version: Open Transactions 0.92.d
Comment: http://github.com/FellowTraveler/Open-Transactions/wiki
Meta: SDT9

CoABGgSn8E6F+smFOpUWSKNRzHZw3eYicQ6l6l2SDxQSVF7HauRzsg3iOQbmEvZ7
wokEIAhp2r9OPFw+L5UG8utpQsdp6xF7rtB0x3MNsYD/LXzz8sf+M7LePIo6xJMM
YwtM5LF8WnBjJIXZIxJM/6DBoAtaZ8UaOU6bst0rSDea6qc=
-----END SMARTCONTRACT SIGNATURE-----
New party added: party_buyer


===> Smart contract has 1 party. <===


Party 'party_buyer' is merely a template, waiting for a real Nym to come along and play its role.
OTScriptChai::ExecuteScript:
Caught chaiscript::exception::eval_error:
Can not find object: stat_partyagents.
File:
Start position, line: 0 column: 0
End position, line: 0 column: 0

Error: "Can not find object: stat_partyagents" during evaluation at (369, 29)

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (369, 29) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (369, 13) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (365, 9) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (387, 12) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (387, 12) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (400, 18) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (400, 17) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (400, 17) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (398, 18) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (396, 9) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1054, 9) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1052, 12) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1277, 30) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1277, 29) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1277, 29) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1275, 25) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1273, 21) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1256, 17) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1250, 13) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1183, 12) :

from ./dev/Open-Transactions/scripts/smartcontracts/smartcontract.ot (1867, 5) :

Feature request: Arrow keys navigation for linux opentxs shell

Platform: Linux Mint 17, Ubuntu Server 14.04 LTS
Expected: The Up key places the prior line from a command history into my command line with the cursor at the end
Actual: The sequence ^[[A is inserted
Note: The Up and Down keys successfully navigate history in Windows 7, in the opentxs.exe binary included in da2ce7's 0.92c binary distribution.

The Lucre e-cash implementation is not secure

  1. Lucre is an unnecessarily complicated protocol. It was originally written to avoid infringing Chaum's e-cash patents. This patent has since expired and there's no particular need for Lucre anymore.
  2. The Lucre protocol is vulnerable to deanonymization attacks, described in the Lucre whitepaper http://anoncvs.aldigital.co.uk/lucre/theory2.pdf The server can sign its messages to Alice with a watermarked key that allows it to recognize when Alice spends her coin. Countermeasures to this are described in the whitepaper, but they are imperfect, add more complexity, and are not included in the current implementation.
  3. Even if original Chaumian e-cash were used, or the Lucre countermeasures were implemented, the e-cash protocol would still be vulnerable to the server undetectably forging coins.

A better solution would be to replace the Lucre e-cash protocol with an auditable E-Cash protocol, such as the one used in Zerocoin.
http://link.springer.com/chapter/10.1007/3-540-45472-1_5
http://zerocoin.org/media/pdf/ZerocoinOakland.pdf

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.