Commit Graph

265 Commits

Author SHA1 Message Date
reaction.la
3750500d1a
updating libs preparatory to merge 2023-10-20 20:37:42 +10:00
reaction.la
3c6ec5283d
finally figured out how to represent numbers and variable
length bitfields to that they will sort correctly in a Merkle Patricia
tree.

Have written no end of rubbish on this with needs to be deleted or
modified
2023-10-20 20:30:32 +10:00
Cheng
1d7ce60cf7
Fixed the default directory to be
standardpath /vendor name/appname
2023-10-20 12:51:51 +10:00
Cheng
d59729f396
Never really figured out why my code was breaking
fixed it by looking for funny things that deviated from
the sameples,  and doing various recommended safe things,
and found a few sql errors, and one by one the crashes
went away.

The new wxWidgets just seems less tolerant of little careless
stuff that is not right.
2023-10-18 20:23:56 +10:00
reaction.la
06b9fc4017
figured out, at least in outline, how to make
a distributed hash table byzantine fault tolerant

Slight clarification on scalability

Figured out how to make variable length integers that
will be represented in correct order in a patricia
merkle tree.
2023-10-13 21:14:31 +10:00
Cheng
bd08d22cef
empty commit to record known bugs
Halting work on main program to re-integrate libraries.

Crash on file dialog.  Does not happen in
wxWidgets sample code

Failure to record last used.  Does not happen in
wxWidgets sample code

Failure to throw hash re-use exception
(the library always returns zero on hashing data into an
unfinalized, or finalizing an already finalized hash)

Need to use std::variant, with the variants being
monotype for the default init of hash and blob of unsigned
char for the init with an hsh argument, with a member
function blob that does get_if<1> and casts it to byte,
(and throws if it returns null) and for hsh, the variants
being monotype, the libsodium data structure,
and another monotype after the hash is finalized.

For every cross type constructor, you need a corresponding
static cast in the source type, so that copy construction works.

I don't know why << fails with a left hand type.
2023-10-12 11:32:38 +10:00
Cheng
0f214cb028
broken file dialog, broken save default file
looks like wxWidgets bugs
going back to sample code
either sample code breaks, and I make a bug report
to wxWidgets, or I converge the sample code to my
code, and see when it breaks
2023-10-05 20:31:45 +10:00
Cheng
145a3a911f
Finally documented the api to my hash code.
Also fixed it so that
hash<...> a = hsh() << ...;
Actually works.  Needed a cast in the hsh class that calls
the constructor in the hash class.
2023-10-03 11:34:30 +10:00
reaction.la
776c18a4a6
Merge remote-tracking branch 'origin/master' into docs 2023-10-02 23:05:21 +10:00
reaction.la
678e2d7dce
updating wxWidgets 2023-10-02 23:00:39 +10:00
reaction.la
e645c3b381
Added the proposal for variable length quantities
that sort as bitstrings
2023-10-02 21:45:59 +10:00
Cheng
7ba674c29a
Cajoled visual studio into issuing intelligent error messages
when an unserializable type is in the parameter pack.
2023-10-02 11:49:04 +10:00
Cheng
dbe030ba21
Went all in on concepts because of nicer error messages
But did not apply the concept to the parameter pack,
event though I applied no end of cleverness to generate
a variant concept, because
visual studio gives meaningless error messages when applying
a variant concept to a parameter pack.

This will probably improve in later or different compilers,
but right now, this feature does not work
2023-10-01 06:11:15 +10:00
Cheng
bc3f2c9daf
Removed the old "is_serializable" in favor of C++20 concepts syntax.
Changed the name to "has_machine_independent_representation" for a more
intellible error explanation
2023-09-30 15:13:26 +10:00
Cheng
5f4fe3104b
Moved the compiled sql statments from the stack to unique
pointers that are members of the window
2023-09-29 21:16:13 +10:00
Cheng
883d8c5b51
Found the sanity test bug.
My hashing code incorrectly ignored the trailing null in std::strings.
(but not in c strings)
2023-09-29 18:44:49 +10:00
Cheng
bba593180e
displays names in alphabetic order
sanity test of pubkey mysteriously fails in display_wallet, yet identical test with same values succeeds in unit_test
need to create a view once sanity test passes.
then need to refresh display on edit/add name
need to make a second try at integrating release v3.2.2.1
2023-09-29 08:14:29 +10:00
Cheng
d82d5218bc
Got it working, the mystery crash was my update to wxWidgets 3.2.2.1 2023-09-28 18:14:32 +10:00
Cheng
a68282e390
modified: .gitconfig 2023-09-28 14:34:51 +10:00
Cheng
b60c57c2d2
rolling back wx widgets to v3.2.0
file dialog now works, but bugs in my sql code
2023-09-28 12:13:08 +10:00
Cheng
b16ddb2071
stashing changes here, and going back in time till file dialogs work 2023-09-27 22:50:55 +10:00
Cheng
f7876905e3
Simplifying the serialization to and from VLQ integer format with C++20 concepts.
Moving serialization to a new header, serialization.h
2023-09-25 18:51:12 +10:00
Cheng
8e7225440a
my exception code was too clever by half 2023-09-25 11:35:18 +10:00
Cheng
fefb99bb33
Discovered that modifying the wxWidgets manifest has no effect
Restored the wallet manifest.
Discovered that local wxString variables are apt to get wiped during
a throw.  Dangerous to pass a wXstring.utf8() to an exception
2023-09-25 10:23:11 +10:00
reaction.la
4b2ac88e44
started documenting the cold start problem 2023-09-25 08:44:24 +10:00
Cheng
883bd8ebe8
std::format seems like a great idea.
Used it in one place.  Better than printf
derived functionality.

But they never bothered to think through supporting user types,
and that is a complete mess that is grossly inconsistent or simply
not working from one compiler to the next.
2023-09-24 20:06:54 +10:00
Cheng
fc9f82b6e5
Documented a bit of code that I had started to forget.
Remade hashing according to the dry principle,
eliminating much code repetition.
Introduced c++20 "concepts" to radically reduce
verbose and incomprehensible template metacode.

modified:   src/db_accessors.h
modified:   src/ristretto255.h
modified:   src/testbed.cpp
2023-09-24 15:38:10 +10:00
Cheng
60eece9269
Merge remote-tracking branch 'origin/docs' 2023-09-23 16:28:50 +10:00
Cheng
89ebcee054
fixed those irritating uninitialized memory warnings by annotating parameters 2023-09-23 15:58:56 +10:00
Cheng
1b0d5148e8
putting in additional SFINAE guards in an effort to hunt down pesky and mysterious warnings 2023-09-22 20:35:28 +10:00
Cheng
9a12dbbd7e
minimally broken branch to isolate what is broken 2023-09-22 19:49:30 +10:00
Cheng
3dabb9992c
updating to version of wxWidgets that tells windows to be unicode 2023-09-22 18:36:07 +10:00
Cheng
d7c06c75c0
cleaning up error reporting 2023-09-22 12:10:52 +10:00
Your Name
654e50ebbd Merge branch 'master' into docs 2023-09-19 16:48:02 +10:00
reaction.la
d50eaa6138
gave the root docs, README, LICENSE, and so forth, the new look 2023-09-19 15:54:05 +10:00
reaction.la
1606968f28
rootdocs broken, manifesto working 2023-09-19 13:13:07 +10:00
reaction.la
5a5403de9c
minor work on the motivation document
darkened the buttons slightly for greater clarity
2023-09-19 10:07:39 +10:00
Cheng
ac7f6806eb
I suffered greatly trying to get the libraries to build correctly
Because one has to separately specify build characteristics in
many different places it is quite difficult to make sure the right
things are linking the right things.

I added the two files msvc/winConfigDebug.bat msvc/winConfigRelease.bat
To build only the libaries that should be linked, so we will get an
error message if a release build links to a debug build.
2023-09-18 07:10:41 +10:00
reaction.la
a11845b46b
cleaning up the very incomplete, but publishable, outline of
what needs doing, and also changed the unintellible
2023-09-17 19:13:44 +10:00
Cheng
61aa3ff141
Updating libsodium - they finally made a release, though
I have been using their unreleased versions for a very
long time.

The release has radically reorganized the build process, probably
to support arm builds
2023-09-17 18:25:49 +10:00
Cheng
70100fbc61
updating wxWidgets - more carefully this time 2023-09-17 14:52:43 +10:00
Cheng
4f77dc9951
command line make 2023-09-16 19:02:43 +10:00
Cheng
3dbd15d27e
Added line numbers and function names to unit test failures
Turned off the deprecated compare warning with explanation
Made a small start on getting names in correct order in the display_wallet
Unit test and create new wallet is still broken if wallet file does
not already exist
2023-09-16 18:49:43 +10:00
Cheng
23e95c16ba
moved a large array from stack to dynamic allocation, and fixed unit
test to correctly handle the new database schema
2023-09-15 19:46:38 +10:00
Cheng
408942a336
My update of wxWidgets broke. wxWidgets bug, or bug in the way I use it.
My update of the schema to explicitly name the ROWID column broke everything because I was using position rather than names for fields
2023-09-14 10:45:12 +10:00
reaction.la
bb6c750a0e
Linkbar is now working, if only in the manifesto subdirectory.
Finally going public with it.  Linked it from my reaction.la
web index, so should become visible to search engines bye and bye
2023-09-06 17:07:37 +10:00
reaction.la
b5beb723c4
Since "proof of stake" already means something else
changed it to proof of share.
Made a small start on populating the horizontal navbar
discovered that no end of my documentation has been broken
by events and should not be linked in.
2023-09-04 20:04:59 +10:00
reaction.la
3c3a22578d
docs build still broken 2023-08-26 09:38:32 +10:00
reaction.la
8cfb02ee99
put in the machinery for a navbar, a navcolumn
and a banner.
    Broke all my existing markdown builds, because I
	have a hundred files that do not fit the new machinery

    And now I have to provide navbars for each directory,
	and update the mkdocs.sh in each directory

    And add a recursive invocation of mkdocs in subdirectories
2023-08-26 07:45:47 +10:00
reaction.la
e679bb5960
checkin in a completely broken docs build 2023-08-26 07:39:57 +10:00