Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.4.0 #140

Merged
merged 48 commits into from Oct 25, 2018
Merged

2.4.0 #140

merged 48 commits into from Oct 25, 2018

Conversation

restevens402
Copy link
Member

Rate limiting implementation

Bob Stevens and others added 30 commits September 3, 2018 20:00
Still needs integration, but is demonstratable
also fixed that config print-out that was always confusing me
need this for real time responses
adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder
hex encoded doesn't work over Grpc
That code must be in the initial HTTP handler so that we can do real time validation
This seems to have fixed it
@davedispatch davedispatch merged commit 4a77695 into dev Oct 25, 2018
ZaneWithSpoon added a commit that referenced this pull request Dec 3, 2018
* Add docs (#6)

* DG-325 (#7)

* Adding the TX test endpoint

* Executing  SC

* added license headers (#8)

* Clean up (#9)

* Merge DG-442 aka DVM  support for smart contracts as part of main binary (#10)

* Clean up

* Add flexible event systems and first contracts test

* Adjusting the contracts test

* Add contract execution support

* Add contract execution support

* Prep for demo

* Moving tests into samples repo

* One Repo to rule them all

* Fix broken paths

* Import changes for repo move

* DG-488 - Merge "core" folder content into "boostrap.go" and move it next to "main.go" (#11)

* DVM-Beta-2 / Test Net 2.0 (#13)

* Clean up

* Add support for delegates in the config

* Clean up

* Add Divvy

* enable logging

* Add support for multiple params

* fixed check for abi instead of code length

* some test code to help debugging

* added code to print state to make it easier for testing/debugging

won't want to call this code in a running environment, but in order to introspect state and the current trie it is useful

* updates to test execute contract

* more debug output

* Remove ETHEREUM Aaccount, use from Common

* Remove ETHEREUM Aaccount, use from Common

* Remove ETHEREUM Aaccount, use from Common

* Add state restore support

* Fixed the hashes for state objects

* Test Net 2.0 is Ready !

* Update DVM Result with execution context

* using contract address created by DVM

We may decide this isn't the way it goes, but for good consistency want to have it done in a single place so we can use timestamp instead of counter nonce.

* Fix the Nonce

* Changed log statements to debug level

Now that we have it working, lowering the really detailed logging to debug level

* removed test call to calculateHash

some POC code is modified as well

* missed selecting files on last checkin (my mistake)

* fixed test and removed unused file from DVM

* added leaf output to tree print

* End to end transactions

* Added curls scripts

* Set new defaults

* Fixing tests

* Fixing tests passing

* Fix the fetching for the  method call result

* DG-520 - Fixed GetStatus from non-delegate (#14)

* Fixed GetStatus from non-delegate

* Clean up

* Fixed test cases and ignoring empty string for contract fields

* Change Receipt.ContractResult type from string to interface{} (#16)

* DG 508 add meaningful error messages to unmarshal of transaction (#15)

* added type checks to unmarshal of transaction

Also updated http response to include the meaningful error messages

* copy paste error thankfully caught by test case

* Bubbling up the out of gas error and allow reasonable gas limit (#17)

* Bubbling up the out of gas error and allow reasonable gas limit

* Fix the tests

* Fixed transfer balance (#18)

* DG-512 (#20)

Updating Readme for TestNet 2.0

* DG-558 + DG-561 (#22)

* Fix the DG-552 (#23)

* Added seed.dispatchlabs.io (#24)

* Build fix (cloudflare error)

* Fix the coneciton pool issue and node configs (#26)

* Fix the coneciton pool issue and node configs

* fixed import issues and removed unused code

* fixed test file to use pointer reference for node

merge master into dev

* Dg 573 (#29)

* DG-570 handle empty "to" value

Added code to handle TX with empty "to" value when it is a simple token transfer

* DG-571

added checks for transaction timestamps that are negative or in the future.

* added time check everywhere with test

* DG-573 - coerce error return content-type to application/json

* DG-573 additional checks

I think it is time to introduce the transaction type.  This logic became kind of ugly for validating the abi code.

* Dg 611 DG-571 (#31)

* DG-611 DG-571 (new fix)

* removed test that requires running server

* Dg 633 (#33)

* adding test case

* Add Ability to sort by time

* adding unit test for sorting

* DG-584 + DG-559 + DG-560 (#32)

* DG-584 + DG-559 + DG-560

* DG-584 + DG-559 + DG-560

* Dg-556 and DG-486 branches (#30)

* DG-486

* DG-487, DG-494

* DG-497

* made cache retriever, edited disgovery functions to include new types helpers

* 486: Auto stash before merge of "DG-486" and "origin/dev"

* put back deep equal in test, fixed read account to always return exact object

* Added test

* DG-572

* qf

* more merge fixes

* Working disgover and cache functionality

* updated nodes cache

* replaced hard cache functions

* fixed single delegate bug

* dapos caching

* Revert config back

* dont sych with missing deli

* Changed config to have deli nodes not endpoints

* DG-650 - Delegates disappear from cache - FIXED

* Dg 642 (#36)

* Gossip NO MORE!

* 642: Auto stash before merge of "DG-642" and "dev"

* Go SDK, build fix (#34)

* SDK

* fixed unit tests for new struct changes

* fix unit tests (Reciept uses Tx Hash now not generated UUID)

* Closing DB on exit (#38)

* Saving to cache and drop the previous node by address (#39)

* Add condition in case seed list is empty then be a seed (#40)

* Add condition in case seed list is empty then be a seed

* Clean up

* fixed problem with scoped variable (#41)

This was causing very strange behavior with gossip randomly just not being processed anymore.  Scoped variable was outside a threaded go function which cause really random behavior under load

* Dg 590 (#43)

* SDK

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Added queueWorker

* added timHash sorting and new priority queue

* Clean up

* checking in so I can test another branch

* More complete queue implementation with needed features

* Clean up

* Clean up

* SDK

* fixed unit tests for new struct changes

* Clean up

* fix unit tests (Reciept uses Tx Hash now not generated UUID)

* Clean up

* Clean up

* Clean up

* Clean up

* adding receipt queue

* adding queue to dapos

* make address optional

* adding different approach to timeout using channel

* check in so I can switch to dev branch

* accidentally deleted, check later

* adding a pretty print json function to receipt

easier to read when testing

* remove timeout from queue and shorten timeout on channel

* DG-710 adding http endpoint for dumping the gossip queue (#44)

* Dg 699 (#46)

* Added http endpoint to node, changed calling functions

* Proto in line

* API reversible

* DG-720 fixed exists map concurrency for queues (#47)

Did not have a thread safe map implementation so added one with a concurrency unit test

* SDK bugs (#49)

* SDK bugs

* DG-716

* DG-717 and DG-718

* Remove lock file (#48)

* DG-712 - Update Sample Tests (#45)

* DG-712

* DG-712 - Update Sample Tests

* DG-729, DG-730, DG-732 - GO SDK - fix the return hash and remove hard coded seed url value (#50)

* DG-607 - Adding CreateAccount method to GoSDK (#51)

* Adding CreateAccount to Go SDK

* Fixing missing type

* DG-607 adding test for createAccount

* Allowing name to be optional in GoSDK.CreateAccount

* Extending GoSDK.CreateAccount unit test

* Fixing GoSDK.CreateAccount unit test

* DG-745 - Adding transaction.hash return to GoSDK.TransferTokens (#52)

* Adding return of Tx.hash to TransferTokens

* Fixing error condition returns

* Adding optional seedURL param to GoSDK.GetDelegates

* Testnet 2.2 (#54)

* Removing DB LOCK

* Pending state

* Clean up

* Added http endpoint to node, changed calling functions

* Proto in line

* Clean up

* DG-705, DG-691, DG-707, DG-708, DG-711

* Clean up

* Clean up

* DG-626 adding rumor timeouts

* DG-682

* DG-719

* Clean up

* Clean up

* adding tx receive timeout

* DG-720 fixed exists map concurrency for queues

Dumb mistake.  Did not have a thread safe map implementation so added one with a concurrency unit test

* Clean up

* Added authenticate struct

* Update

* Clean up

* adding timeout check just before executing the tx

* adding abi helper

* added more to abi helper

Still need more code to properly handle Arrays

* initial

switching computers, checking in

* moved timeouts to constants removing hard-coded values

We are currently doing all of the calculations in milliseconds.  I think we need to change this to nano-seconds for back-end code. This will be particularly helpful with the delegate to delegate comms.

* incremental checkin for abi_helper

added some extra logging to help figuring out this array thing.

* set default isBookkeeper to true

* default isBookkeeper to true

* increase timeout to 2 seconds

* adding some logging for testing

* upping timeout values to unblock QA on functional testing

While I do research, want to just eliminate this as an issue.

* updated to latest protobuf to see if it fixes the issue

* adding some logging for QA to do some checking

* more informative logging for QA

* Dg-690 (#55)

* New API functionality and bug fixes

* backwards compatible, negative not supportive on page

* 690: Auto stash before merge of "DG-690" and "testnet-2.2"

* hide

* added back receipts endpoint

also logging grpc key during sync process.  A key is being created somewhere that is invalid.

* fixed abi helper so it now supports array parameters

* DG-762

fixed grpc errors when disgo starts.  Caused by pulling DVM cache values which should not be part of the sync process.

* added logging to file and pretty print for config

* trying with 100% consensus

* Back to 2/3 ... issue was identified

* Adding errors for invalid inut that does not conform to ABI (#58)

* Remove FakeNode (#57)

* DG-765 - Make a simplified version of the endpoints with embedded private keys (#59)

* DG-782 dump from cache delegates that fail on connection (#64)

* Dg 763 (#62)

* updating ignore file

* DG-763  delegate expiration

TTL was always being set to 24 hours.  Because the no expiration constant has a value of -1 the check for the optional parameter always failed and the cache time to live is ALWAYS set to 24 hours.

* DG-763 - fixing tests

* Fixing link (#63)

* DG-781 - Add "gossip" to transaction (#56)

* Adding "gossip" key to transaction API

* Fixing test error

* DG-784 DG-786 (#60)

* Adding to/from query parameters support to /v1/transactions

* DG-786

Adjust Go SDK to use to/from query params

* DG-789 - "StatusNotDelegate" should not be a 200 response (#66)

* DG-789 - "StatusNotDelegate" should not be a 200 response

* DG-789 - "StatusNotDelegate" should not be a 200 response

* Handle StatusNotDelegate

* Dg 788 (#68)

* Adding check on type

* adding error checking with hopefully helpful messages

* Added key- only iteration to speed up DB search (#72)

Added key- only iteration to speed up DB search

* DG-693 - Finalize Software Update (#69)

* Merge branch 'dev' into DG-693

* Clean up

* Clean up

* Clean up

* Moved vender

* Added cron

* Fixed test case

* DG-778 Use Endpoint.Address rather than add SeedAddresses (#65)

* DG-778 Use Endpoint.Address rather than add SeedAddresses

* Switch config to use Node instead of modified Endpoint

* Dg 792 (#73)

* DG-778 Use Endpoint.Address rather than add SeedAddresses

* testing scenarios but need to switch branches

* Switch config to use Node instead of modified Endpoint

* adding connection pool

* after testing, adding back removing unresponsive delegate and set timing back to correct values

* increase the gossip timeout to 1 second (QA still hitting timr of > 300 ms)

* Removing invalid test (should not test for production up in unit tests)

* updated tx pagingation to 100 (#79)

* DG-825 (#80)

* DG-827 - Update the deployment scripts (#81)

* 2.2.0 (#83)

* DG-825 (take 2)

* DG-825 (take 3)

* Fixing Sprintf

* Better error msg when times future

* Correct time later than error msg

* DG-764 - Synchronize DB (#77)

* clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Fix commons test

* DG-812 (#76)

* clean up

* Clean up

* Clean up

* Dg 772 (#70)

* Updated Account and account test

* Update Gossip Unit test

* Revert account back, along with more test

* merge change

* added t.skip to unused unit test

* Updated receipt test

* Removing need to provide `abi` during contract execution (#74)

* Dg 817 (#86)

* switching branches checkin

* Finished after lots of testing

* Revert StatusReceived receipt status until later

* Auto stash before merge of "dev" and "upstream/dev" (#82)

* Auto stash before merge of "dev" and "upstream/dev"

* Updated API's to accept starting point and page size. Also removed old endpoints

* Updated Query calls

* Comment out broken tests until they can be fixed (#88)

* Dg 833 DG-834 DG-838 (#87)

* DG-838 added allow tx in the future based on constant

* DG-834 making queue timeout a function of time for future transactions

* updated to us other variables for queue timeout computation

* DG-850 - Update the crypto libs (#89)

* Remove v1/accounts from API (#91)

* Removing v1/receipts endpoint (#92)

* Removing v1/receipts endpoint

* Updating SDK to not use /v1/receipts/hash

* fix endpoint error (#95)

* Getting ABI from DB on receipt so we can call parameter conversion (#96)

* Not a sufficient fix.  We need to implement broadcast so this is a non-issue (#93)

* Dg 880 (#98)

* DG-880 fixing error checks on ABI

Also removed not checking ABI if there are no params so this fixes DG-871

* Moving the empty check

* DG-809 - Software and update script (#99)

* Clean up

* fook me

* fook me

* fook me

* pagination support for sdk and test (#100)

* pagination support for sdk and test

* optional page params

* DG-701 - Exec contracts from contracts (#101)

* DG-850 - Update the crypto libs

* Add temp fixes for support of new ABI approach

* moved retrieving ABI to top level because of validation

* forgot assignment

* DG-701 - Fix Smart Contracts

* Until we change the SDK to always encode ABI before sending it, I am doing this to patch

* support for addreess

* DG-701 - New EVM merge

* DG-701 - exec contracts from contracts

* DG-701 - exec contracts from contracts

* DG-701 - merge fix

* Merge fix

* DG-701 - Saving state

* DG-701 - Fix tests

* DG-701 - reverting the timout

* GossipTO == 1s

* DG-855 - Fix the timestamp opcode (#103)

* DG-855 - Fix the timestamp opcode

* Update go version

* Require Go 1.10 in main.go

* Revert +build requirement

* Fix to get reciipt from cache when getting transaction from cache (#106)

This should solve a number of issues where there is a failure on the transaction and there was not receipt to get status for it.

* fix SDK pagination bug (#107)

* DG-878 - Synchronize smart contracts states for delegates (#105)

* Contract states are now beinf synced

* Clean up

* Dg 879 (#104)

* DG-790

* SDK endpoint with basic Auth

* 3 new Local API's

* packageTX changed from GET to POST

* realm

* DG-910 function stack it not l->r but it is r->l (#109)

* Fixed the sync (#110)

* Updates to Gossip Cycle  behavior to account for down delegates (#111)

* Updates to Gossip Cycle  behavior to account for down delegates

Hopefully this solves a large number of problems

* moved node timeout to constants

* DG-799 (#112)

* Modify TxPaging to support sorting by Tx.timestamp

* Adding "paging" to response and fixing bugs

* Fixing error log

* DG-901 - Fix opcodes (#113)

* DG-854

* Pointing eth-accounts to badger-accounts

* savae

* Finally working state

* DG-901 - fix opcodes

* DG-901 - fix opcodes


Merge branch 'dev' into DG-901
Merge remote-tracking branch 'origin/DG-901' into DG-901

* Dg 924 (#115)

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* Dg 927 (#116)

* using dep now ...

* moved revisions to known versions

* DG-930 remove vendor packages that break clients (#119)

* Dg 929 (#118)

* adding null check and ABI validation on deploy

* fixing error message

* Removing unused MerkleTree code (#120)

* DG 921 (#121)

* DG-910 function stack it not l->r but it is r->l

* DG-904 Tests math opcodes with go test

* fix for a sdiv test

* fix for signextend test

* DG-921 fies sidv, signextend, and smod tests

* modified Gossip to not gossip so poorly (#124)

The gossipworker was not efficiently handling gossip and we had an overload of gossiping that was really problematic.  Big change was to separate who delegates have sent to and who they received from. Those are handled enirely separate now so that we can validate on recieve and not send to the same delegate many times.

* DG-583 (#122)

* Decode Abi before returning

* Abi must be a string (not []bytes)

* Sort in reverse order (newest first) (#125)

* Pagination typo (one too many items being returned) (#126)

* Fix down n up seed bug (#123)

* DG-885 (#127)

* added byte array acceptance

* fix merge mistake

* DG-984 fixing deps, no more go get ./... (#131)

* Dg 911 (#132)

* New update

* Update disgover/disgover_transport_grpc.go

* Clean up

* Forcing MVP directories for now ...

* Foo

* Update disgover/disgover_service.go

* Update disgover/disgover_transport_grpc.go

* fook me

* Update disgover/disgover_transport_grpc.go

* 2.4.0 test

* Update disgover/disgover_transport_grpc.go

* Update disgover/disgover_transport_grpc.go

* Update commons/types/constants.go

* More logging

* fook me

* foo ... grabbing at straws

* update working

Requires - vi /etc/sudoers 

dispatch-services ALL=(ALL) NOPASSWD: ALL

* DG-856 call prepare at contract exe + log fix (#130)

* 2.4.0 (#140)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* fixed unit test for account

* DG 977 removed Genesis transaction and replaced with Genesis Account (#141)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* Something going on with badger need to check to test older code

* fixed value for getting the account properly from badger

also updated test case for account to have zero availableHertz

* add a default genesis account so people don't have to create one manually

will provide instructions on creating one manually.

* changed name to HertzAvailable so it is more intuitive when comparing against transaction

* DG 989 Tool for generating local cluster and Genesis Account with documentation (#145)

* adding tools binary that has all the needed features

* adding readme with instructions

* Update README.md

* Update README.md

* Fixing Bug DG-1022: Deploy API not accepting ABI (#147)

Removed the Hex string encoding for the ABI

* 2.4.0 (#150)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* fixed unit test for account

* DG 857 linear regression rate limiting (#142)

* Adding a linear regression

* DG-857 Ads linear regression rate limiting

* fixes build, missing TTL and api issues

* DG-1024 Ads baseHertz concept and ratchets TTL

* Fixes several tests

* Completes unit tests

* DG-1025 removes unvendorable projects (#146)

* Update README.md (#139)

* added locking up a min hertz to sender (#153)

Added locking up to receiver as well.  This needs to be after the receiver account is saved so that it doesn't have issues saving the rate limit when it is a new TO account

* Dg 1027 new (#152)

* DG-1027 Are config for rate limiting

* Make sure rateLimits changes in config.json load

* reverting config.go changes

* adding back rate limits to config

* Fix for NPE because of missing rate limits

* Refactor so code is cleaner

* Formatting

* remove debug code and formatting

* formatting

* DG-1021 - Transaction.Verify checks the time now (#154)

* Transaction.Verify checks the time now

* Update sdk/endpoints.go

* DG-978 (#155)

* DG-1011 - Tx.value and Tx.hertz provided/returned as strings, remain int64 internally

* DG-1014 - Account.balance as a string instead of big.int

* Tests are passing

* DG-1016 Ensuring TX.hashing is based on string value

* Adjusting default Account.Balance

* Revert Account.Balance change

* Balance must be a string

* Remove double-stringing of Tx.Hertz

* Account test fix

* Added explicit processing to the DVM result for []byte return values (#156)

since it is automatically converted to base64, it must be decoded and I found that the VM adds null termination, so that must be trimmed from the end as well.  One important note is to make sure that "string" is the expected result.  I have this feeling that this issue might have cases where we want to keep the base64 or the base64 bytes.

* updated file utils to check for existence before trying to delete (#157)

* DG-1047 (#158)

* fixed merge conflicts in readme

* adding link to main disgo readme file

* Remove Account.Nonce from the API (#159)

* DG-1051 (#160)

* updated generation of genesis account to ensure balance is serialized as a json

* Allow Account.Balance to be either a number or a string (support old account.json files)

* Fixing Tx.Value to allow it to be string or number

* DG-1046 Change config link in readme (#162)

* DG-1055 Fix missed config link (#163)

* DG-1066 add min and max TTL to config (#164)

* DG-1066 add min and max TTL to config

* Missed a TTL setting, fixed.

* Changing threshold checks

* formatting

* type-o fix

* DG-1067 Fix for default RateLimits and override (#165)

* DG 1045 Rate Limiting Fix (#166)

* DG-1045 HzCeiling on spikes below will lower TTL

* Updating test

* DG-1052 adding type check for herz (#168)

* DG-992 Added Version (#161)

* adding version and attaching to node

* added version constant

changed message in main to just be info level

* hertz check should be less than not less than equal (#170)

* add checks for empty toAddress in transaction for rate limiting and badger (#171)

* version object not initialized before unmarshalling an existing version.json (#172)

Added initilization (get null reference otherwise)

* DG-1081 fixed hertz check after the execution of transfer / contract (#173)

* DG-1049 - Transaction.Params type string (#169)

* Transaction.Params to string

* Fook me...this touches a lot

* Fixing test

* DG-917 encryption of private key  (#167)

* Second instance of this branch

The number of merges into this  branch made it extremely difficult to isolate the code changes.  I have have reproduced the branch as a single check in to create a PR from.
I do think we need to talk this over since it does have implications to how the system behaves.  I think delegates will need to behave differently, but we can talk that over.

* check in for moving  to different computer

* exposing some functions so they can be used from tools

* Fixing tests

* Tools build - add support for localAPI (#174)

* fixed abi helper to use the only converted params (from string) (#176)

some code was missed where it should have used the params object not the tx.Params (which is now the json string representation of the params)

* Adding uno/pwd for localAPI to config (#175)

* fixing case in rate limit for first transfer (before any rate limit is applied to an account) (#177)

* Return JSON format from localAPI (#178)

* fixing check for invalid format of params (#179)

Since we moved to string params that is converted, this check was missed.

* updated the default values to reasonable numbers (#180)

The min hertz/gas was set to 1 trillion, so an intdeterminate loop could run seemingly forever.  I lowered to a reasonable number after some testing.
High priority for post-main-net is to add hert limits to the initial transaction request and at least set the limit to available hertz if nothing is specified.

* removed code that would allow null in the result list (#182)

* check case where deduction > balance (#181)

* Main net epoch and default balance and account (#183)
ZaneWithSpoon added a commit that referenced this pull request Feb 17, 2019
* Add docs (#6)

* DG-325 (#7)

* Adding the TX test endpoint

* Executing  SC

* added license headers (#8)

* Clean up (#9)

* Merge DG-442 aka DVM  support for smart contracts as part of main binary (#10)

* Clean up

* Add flexible event systems and first contracts test

* Adjusting the contracts test

* Add contract execution support

* Add contract execution support

* Prep for demo

* Moving tests into samples repo

* One Repo to rule them all

* Fix broken paths

* Import changes for repo move

* DG-488 - Merge "core" folder content into "boostrap.go" and move it next to "main.go" (#11)

* DVM-Beta-2 / Test Net 2.0 (#13)

* Clean up

* Add support for delegates in the config

* Clean up

* Add Divvy

* enable logging

* Add support for multiple params

* fixed check for abi instead of code length

* some test code to help debugging

* added code to print state to make it easier for testing/debugging

won't want to call this code in a running environment, but in order to introspect state and the current trie it is useful

* updates to test execute contract

* more debug output

* Remove ETHEREUM Aaccount, use from Common

* Remove ETHEREUM Aaccount, use from Common

* Remove ETHEREUM Aaccount, use from Common

* Add state restore support

* Fixed the hashes for state objects

* Test Net 2.0 is Ready !

* Update DVM Result with execution context

* using contract address created by DVM

We may decide this isn't the way it goes, but for good consistency want to have it done in a single place so we can use timestamp instead of counter nonce.

* Fix the Nonce

* Changed log statements to debug level

Now that we have it working, lowering the really detailed logging to debug level

* removed test call to calculateHash

some POC code is modified as well

* missed selecting files on last checkin (my mistake)

* fixed test and removed unused file from DVM

* added leaf output to tree print

* End to end transactions

* Added curls scripts

* Set new defaults

* Fixing tests

* Fixing tests passing

* Fix the fetching for the  method call result

* DG-520 - Fixed GetStatus from non-delegate (#14)

* Fixed GetStatus from non-delegate

* Clean up

* Fixed test cases and ignoring empty string for contract fields

* Change Receipt.ContractResult type from string to interface{} (#16)

* DG 508 add meaningful error messages to unmarshal of transaction (#15)

* added type checks to unmarshal of transaction

Also updated http response to include the meaningful error messages

* copy paste error thankfully caught by test case

* Bubbling up the out of gas error and allow reasonable gas limit (#17)

* Bubbling up the out of gas error and allow reasonable gas limit

* Fix the tests

* Fixed transfer balance (#18)

* DG-512 (#20)

Updating Readme for TestNet 2.0

* DG-558 + DG-561 (#22)

* Fix the DG-552 (#23)

* Added seed.dispatchlabs.io (#24)

* Build fix (cloudflare error)

* Fix the coneciton pool issue and node configs (#26)

* Fix the coneciton pool issue and node configs

* fixed import issues and removed unused code

* fixed test file to use pointer reference for node

merge master into dev

* Dg 573 (#29)

* DG-570 handle empty "to" value

Added code to handle TX with empty "to" value when it is a simple token transfer

* DG-571

added checks for transaction timestamps that are negative or in the future.

* added time check everywhere with test

* DG-573 - coerce error return content-type to application/json

* DG-573 additional checks

I think it is time to introduce the transaction type.  This logic became kind of ugly for validating the abi code.

* Dg 611 DG-571 (#31)

* DG-611 DG-571 (new fix)

* removed test that requires running server

* Dg 633 (#33)

* adding test case

* Add Ability to sort by time

* adding unit test for sorting

* DG-584 + DG-559 + DG-560 (#32)

* DG-584 + DG-559 + DG-560

* DG-584 + DG-559 + DG-560

* Dg-556 and DG-486 branches (#30)

* DG-486

* DG-487, DG-494

* DG-497

* made cache retriever, edited disgovery functions to include new types helpers

* 486: Auto stash before merge of "DG-486" and "origin/dev"

* put back deep equal in test, fixed read account to always return exact object

* Added test

* DG-572

* qf

* more merge fixes

* Working disgover and cache functionality

* updated nodes cache

* replaced hard cache functions

* fixed single delegate bug

* dapos caching

* Revert config back

* dont sych with missing deli

* Changed config to have deli nodes not endpoints

* DG-650 - Delegates disappear from cache - FIXED

* Dg 642 (#36)

* Gossip NO MORE!

* 642: Auto stash before merge of "DG-642" and "dev"

* Go SDK, build fix (#34)

* SDK

* fixed unit tests for new struct changes

* fix unit tests (Reciept uses Tx Hash now not generated UUID)

* Closing DB on exit (#38)

* Saving to cache and drop the previous node by address (#39)

* Add condition in case seed list is empty then be a seed (#40)

* Add condition in case seed list is empty then be a seed

* Clean up

* fixed problem with scoped variable (#41)

This was causing very strange behavior with gossip randomly just not being processed anymore.  Scoped variable was outside a threaded go function which cause really random behavior under load

* Dg 590 (#43)

* SDK

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Added queueWorker

* added timHash sorting and new priority queue

* Clean up

* checking in so I can test another branch

* More complete queue implementation with needed features

* Clean up

* Clean up

* SDK

* fixed unit tests for new struct changes

* Clean up

* fix unit tests (Reciept uses Tx Hash now not generated UUID)

* Clean up

* Clean up

* Clean up

* Clean up

* adding receipt queue

* adding queue to dapos

* make address optional

* adding different approach to timeout using channel

* check in so I can switch to dev branch

* accidentally deleted, check later

* adding a pretty print json function to receipt

easier to read when testing

* remove timeout from queue and shorten timeout on channel

* DG-710 adding http endpoint for dumping the gossip queue (#44)

* Dg 699 (#46)

* Added http endpoint to node, changed calling functions

* Proto in line

* API reversible

* DG-720 fixed exists map concurrency for queues (#47)

Did not have a thread safe map implementation so added one with a concurrency unit test

* SDK bugs (#49)

* SDK bugs

* DG-716

* DG-717 and DG-718

* Remove lock file (#48)

* DG-712 - Update Sample Tests (#45)

* DG-712

* DG-712 - Update Sample Tests

* DG-729, DG-730, DG-732 - GO SDK - fix the return hash and remove hard coded seed url value (#50)

* DG-607 - Adding CreateAccount method to GoSDK (#51)

* Adding CreateAccount to Go SDK

* Fixing missing type

* DG-607 adding test for createAccount

* Allowing name to be optional in GoSDK.CreateAccount

* Extending GoSDK.CreateAccount unit test

* Fixing GoSDK.CreateAccount unit test

* DG-745 - Adding transaction.hash return to GoSDK.TransferTokens (#52)

* Adding return of Tx.hash to TransferTokens

* Fixing error condition returns

* Adding optional seedURL param to GoSDK.GetDelegates

* Testnet 2.2 (#54)

* Removing DB LOCK

* Pending state

* Clean up

* Added http endpoint to node, changed calling functions

* Proto in line

* Clean up

* DG-705, DG-691, DG-707, DG-708, DG-711

* Clean up

* Clean up

* DG-626 adding rumor timeouts

* DG-682

* DG-719

* Clean up

* Clean up

* adding tx receive timeout

* DG-720 fixed exists map concurrency for queues

Dumb mistake.  Did not have a thread safe map implementation so added one with a concurrency unit test

* Clean up

* Added authenticate struct

* Update

* Clean up

* adding timeout check just before executing the tx

* adding abi helper

* added more to abi helper

Still need more code to properly handle Arrays

* initial

switching computers, checking in

* moved timeouts to constants removing hard-coded values

We are currently doing all of the calculations in milliseconds.  I think we need to change this to nano-seconds for back-end code. This will be particularly helpful with the delegate to delegate comms.

* incremental checkin for abi_helper

added some extra logging to help figuring out this array thing.

* set default isBookkeeper to true

* default isBookkeeper to true

* increase timeout to 2 seconds

* adding some logging for testing

* upping timeout values to unblock QA on functional testing

While I do research, want to just eliminate this as an issue.

* updated to latest protobuf to see if it fixes the issue

* adding some logging for QA to do some checking

* more informative logging for QA

* Dg-690 (#55)

* New API functionality and bug fixes

* backwards compatible, negative not supportive on page

* 690: Auto stash before merge of "DG-690" and "testnet-2.2"

* hide

* added back receipts endpoint

also logging grpc key during sync process.  A key is being created somewhere that is invalid.

* fixed abi helper so it now supports array parameters

* DG-762

fixed grpc errors when disgo starts.  Caused by pulling DVM cache values which should not be part of the sync process.

* added logging to file and pretty print for config

* trying with 100% consensus

* Back to 2/3 ... issue was identified

* Adding errors for invalid inut that does not conform to ABI (#58)

* Remove FakeNode (#57)

* DG-765 - Make a simplified version of the endpoints with embedded private keys (#59)

* DG-782 dump from cache delegates that fail on connection (#64)

* Dg 763 (#62)

* updating ignore file

* DG-763  delegate expiration

TTL was always being set to 24 hours.  Because the no expiration constant has a value of -1 the check for the optional parameter always failed and the cache time to live is ALWAYS set to 24 hours.

* DG-763 - fixing tests

* Fixing link (#63)

* DG-781 - Add "gossip" to transaction (#56)

* Adding "gossip" key to transaction API

* Fixing test error

* DG-784 DG-786 (#60)

* Adding to/from query parameters support to /v1/transactions

* DG-786

Adjust Go SDK to use to/from query params

* DG-789 - "StatusNotDelegate" should not be a 200 response (#66)

* DG-789 - "StatusNotDelegate" should not be a 200 response

* DG-789 - "StatusNotDelegate" should not be a 200 response

* Handle StatusNotDelegate

* Dg 788 (#68)

* Adding check on type

* adding error checking with hopefully helpful messages

* Added key- only iteration to speed up DB search (#72)

Added key- only iteration to speed up DB search

* DG-693 - Finalize Software Update (#69)

* Merge branch 'dev' into DG-693

* Clean up

* Clean up

* Clean up

* Moved vender

* Added cron

* Fixed test case

* DG-778 Use Endpoint.Address rather than add SeedAddresses (#65)

* DG-778 Use Endpoint.Address rather than add SeedAddresses

* Switch config to use Node instead of modified Endpoint

* Dg 792 (#73)

* DG-778 Use Endpoint.Address rather than add SeedAddresses

* testing scenarios but need to switch branches

* Switch config to use Node instead of modified Endpoint

* adding connection pool

* after testing, adding back removing unresponsive delegate and set timing back to correct values

* increase the gossip timeout to 1 second (QA still hitting timr of > 300 ms)

* Removing invalid test (should not test for production up in unit tests)

* updated tx pagingation to 100 (#79)

* DG-825 (#80)

* DG-827 - Update the deployment scripts (#81)

* 2.2.0 (#83)

* DG-825 (take 2)

* DG-825 (take 3)

* Fixing Sprintf

* Better error msg when times future

* Correct time later than error msg

* DG-764 - Synchronize DB (#77)

* clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Clean up

* Fix commons test

* DG-812 (#76)

* clean up

* Clean up

* Clean up

* Dg 772 (#70)

* Updated Account and account test

* Update Gossip Unit test

* Revert account back, along with more test

* merge change

* added t.skip to unused unit test

* Updated receipt test

* Removing need to provide `abi` during contract execution (#74)

* Dg 817 (#86)

* switching branches checkin

* Finished after lots of testing

* Revert StatusReceived receipt status until later

* Auto stash before merge of "dev" and "upstream/dev" (#82)

* Auto stash before merge of "dev" and "upstream/dev"

* Updated API's to accept starting point and page size. Also removed old endpoints

* Updated Query calls

* Comment out broken tests until they can be fixed (#88)

* Dg 833 DG-834 DG-838 (#87)

* DG-838 added allow tx in the future based on constant

* DG-834 making queue timeout a function of time for future transactions

* updated to us other variables for queue timeout computation

* DG-850 - Update the crypto libs (#89)

* Remove v1/accounts from API (#91)

* Removing v1/receipts endpoint (#92)

* Removing v1/receipts endpoint

* Updating SDK to not use /v1/receipts/hash

* fix endpoint error (#95)

* Getting ABI from DB on receipt so we can call parameter conversion (#96)

* Not a sufficient fix.  We need to implement broadcast so this is a non-issue (#93)

* Dg 880 (#98)

* DG-880 fixing error checks on ABI

Also removed not checking ABI if there are no params so this fixes DG-871

* Moving the empty check

* DG-809 - Software and update script (#99)

* Clean up

* fook me

* fook me

* fook me

* pagination support for sdk and test (#100)

* pagination support for sdk and test

* optional page params

* DG-701 - Exec contracts from contracts (#101)

* DG-850 - Update the crypto libs

* Add temp fixes for support of new ABI approach

* moved retrieving ABI to top level because of validation

* forgot assignment

* DG-701 - Fix Smart Contracts

* Until we change the SDK to always encode ABI before sending it, I am doing this to patch

* support for addreess

* DG-701 - New EVM merge

* DG-701 - exec contracts from contracts

* DG-701 - exec contracts from contracts

* DG-701 - merge fix

* Merge fix

* DG-701 - Saving state

* DG-701 - Fix tests

* DG-701 - reverting the timout

* GossipTO == 1s

* DG-855 - Fix the timestamp opcode (#103)

* DG-855 - Fix the timestamp opcode

* Update go version

* Require Go 1.10 in main.go

* Revert +build requirement

* Fix to get reciipt from cache when getting transaction from cache (#106)

This should solve a number of issues where there is a failure on the transaction and there was not receipt to get status for it.

* fix SDK pagination bug (#107)

* DG-878 - Synchronize smart contracts states for delegates (#105)

* Contract states are now beinf synced

* Clean up

* Dg 879 (#104)

* DG-790

* SDK endpoint with basic Auth

* 3 new Local API's

* packageTX changed from GET to POST

* realm

* DG-910 function stack it not l->r but it is r->l (#109)

* Fixed the sync (#110)

* Updates to Gossip Cycle  behavior to account for down delegates (#111)

* Updates to Gossip Cycle  behavior to account for down delegates

Hopefully this solves a large number of problems

* moved node timeout to constants

* DG-799 (#112)

* Modify TxPaging to support sorting by Tx.timestamp

* Adding "paging" to response and fixing bugs

* Fixing error log

* DG-901 - Fix opcodes (#113)

* DG-854

* Pointing eth-accounts to badger-accounts

* savae

* Finally working state

* DG-901 - fix opcodes

* DG-901 - fix opcodes


Merge branch 'dev' into DG-901
Merge remote-tracking branch 'origin/DG-901' into DG-901

* Dg 924 (#115)

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* Dg 927 (#116)

* using dep now ...

* moved revisions to known versions

* DG-930 remove vendor packages that break clients (#119)

* Dg 929 (#118)

* adding null check and ABI validation on deploy

* fixing error message

* Removing unused MerkleTree code (#120)

* DG 921 (#121)

* DG-910 function stack it not l->r but it is r->l

* DG-904 Tests math opcodes with go test

* fix for a sdiv test

* fix for signextend test

* DG-921 fies sidv, signextend, and smod tests

* modified Gossip to not gossip so poorly (#124)

The gossipworker was not efficiently handling gossip and we had an overload of gossiping that was really problematic.  Big change was to separate who delegates have sent to and who they received from. Those are handled enirely separate now so that we can validate on recieve and not send to the same delegate many times.

* DG-583 (#122)

* Decode Abi before returning

* Abi must be a string (not []bytes)

* Sort in reverse order (newest first) (#125)

* Pagination typo (one too many items being returned) (#126)

* Fix down n up seed bug (#123)

* DG-885 (#127)

* added byte array acceptance

* fix merge mistake

* DG-984 fixing deps, no more go get ./... (#131)

* Dg 911 (#132)

* New update

* Update disgover/disgover_transport_grpc.go

* Clean up

* Forcing MVP directories for now ...

* Foo

* Update disgover/disgover_service.go

* Update disgover/disgover_transport_grpc.go

* fook me

* Update disgover/disgover_transport_grpc.go

* 2.4.0 test

* Update disgover/disgover_transport_grpc.go

* Update disgover/disgover_transport_grpc.go

* Update commons/types/constants.go

* More logging

* fook me

* foo ... grabbing at straws

* update working

Requires - vi /etc/sudoers 

dispatch-services ALL=(ALL) NOPASSWD: ALL

* DG-856 call prepare at contract exe + log fix (#130)

* 2.4.0 (#140)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* fixed unit test for account

* DG 977 removed Genesis transaction and replaced with Genesis Account (#141)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* Something going on with badger need to check to test older code

* fixed value for getting the account properly from badger

also updated test case for account to have zero availableHertz

* add a default genesis account so people don't have to create one manually

will provide instructions on creating one manually.

* changed name to HertzAvailable so it is more intuitive when comparing against transaction

* DG 989 Tool for generating local cluster and Genesis Account with documentation (#145)

* adding tools binary that has all the needed features

* adding readme with instructions

* Update README.md

* Update README.md

* Fixing Bug DG-1022: Deploy API not accepting ABI (#147)

Removed the Hex string encoding for the ABI

* 2.4.0 (#150)

* initial work

* test

* Initial implementation

Still needs integration, but is demonstratable

* adding rate limit to transfer tokens

* switch branch for another bug fix

* adding rate limits into execute tx (check in to switch branches)

* removed AccountState key because it cannot be sent over grpc

* Fixed the sync

* small changes

also fixed that config print-out that was always confusing me

* DG-912 tracking unavailable nodes

* fixes for reciepts as well

* switching branch check in

* switching computers

* put back validation into handler

need this for real time responses

* adding badger version into our vendor package

adding badger version into our vendor package
Newest release broke our code, so putting my version in the vendor folder

* ABI is already encoded on deploy

* changed to store the contract account state as string

hex encoded doesn't work over Grpc

* removed abi validation and param conversion

That code must be in the initial HTTP handler so that we can do real time validation

* change key for get as well

This seems to have fixed it

* fixed issue with address return type from contract

* return invalid ABI for debugging with QA

* get the incoming value for invalid ABI for error message

* small update

* logging additions

* moved badger to be a parameter instead of attribute

* adding rolling window implementation for calculating rate limit

* update git ignore

* DG-1003 adding http endpoint for rateLimitWindow and available hertz for account

* made it possible to get TTL for window

I think should probably move the TTL stuff into Window instead of having it in rate_limit

* fixed unit test for account

* DG 857 linear regression rate limiting (#142)

* Adding a linear regression

* DG-857 Ads linear regression rate limiting

* fixes build, missing TTL and api issues

* DG-1024 Ads baseHertz concept and ratchets TTL

* Fixes several tests

* Completes unit tests

* DG-1025 removes unvendorable projects (#146)

* Update README.md (#139)

* added locking up a min hertz to sender (#153)

Added locking up to receiver as well.  This needs to be after the receiver account is saved so that it doesn't have issues saving the rate limit when it is a new TO account

* Dg 1027 new (#152)

* DG-1027 Are config for rate limiting

* Make sure rateLimits changes in config.json load

* reverting config.go changes

* adding back rate limits to config

* Fix for NPE because of missing rate limits

* Refactor so code is cleaner

* Formatting

* remove debug code and formatting

* formatting

* DG-1021 - Transaction.Verify checks the time now (#154)

* Transaction.Verify checks the time now

* Update sdk/endpoints.go

* DG-978 (#155)

* DG-1011 - Tx.value and Tx.hertz provided/returned as strings, remain int64 internally

* DG-1014 - Account.balance as a string instead of big.int

* Tests are passing

* DG-1016 Ensuring TX.hashing is based on string value

* Adjusting default Account.Balance

* Revert Account.Balance change

* Balance must be a string

* Remove double-stringing of Tx.Hertz

* Account test fix

* Added explicit processing to the DVM result for []byte return values (#156)

since it is automatically converted to base64, it must be decoded and I found that the VM adds null termination, so that must be trimmed from the end as well.  One important note is to make sure that "string" is the expected result.  I have this feeling that this issue might have cases where we want to keep the base64 or the base64 bytes.

* updated file utils to check for existence before trying to delete (#157)

* DG-1047 (#158)

* fixed merge conflicts in readme

* adding link to main disgo readme file

* Remove Account.Nonce from the API (#159)

* DG-1051 (#160)

* updated generation of genesis account to ensure balance is serialized as a json

* Allow Account.Balance to be either a number or a string (support old account.json files)

* Fixing Tx.Value to allow it to be string or number

* DG-1046 Change config link in readme (#162)

* DG-1055 Fix missed config link (#163)

* DG-1066 add min and max TTL to config (#164)

* DG-1066 add min and max TTL to config

* Missed a TTL setting, fixed.

* Changing threshold checks

* formatting

* type-o fix

* DG-1067 Fix for default RateLimits and override (#165)

* DG 1045 Rate Limiting Fix (#166)

* DG-1045 HzCeiling on spikes below will lower TTL

* Updating test

* DG-1052 adding type check for herz (#168)

* DG-992 Added Version (#161)

* adding version and attaching to node

* added version constant

changed message in main to just be info level

* hertz check should be less than not less than equal (#170)

* add checks for empty toAddress in transaction for rate limiting and badger (#171)

* version object not initialized before unmarshalling an existing version.json (#172)

Added initilization (get null reference otherwise)

* DG-1081 fixed hertz check after the execution of transfer / contract (#173)

* DG-1049 - Transaction.Params type string (#169)

* Transaction.Params to string

* Fook me...this touches a lot

* Fixing test

* DG-917 encryption of private key  (#167)

* Second instance of this branch

The number of merges into this  branch made it extremely difficult to isolate the code changes.  I have have reproduced the branch as a single check in to create a PR from.
I do think we need to talk this over since it does have implications to how the system behaves.  I think delegates will need to behave differently, but we can talk that over.

* check in for moving  to different computer

* exposing some functions so they can be used from tools

* Fixing tests

* Tools build - add support for localAPI (#174)

* fixed abi helper to use the only converted params (from string) (#176)

some code was missed where it should have used the params object not the tx.Params (which is now the json string representation of the params)

* Adding uno/pwd for localAPI to config (#175)

* fixing case in rate limit for first transfer (before any rate limit is applied to an account) (#177)

* Return JSON format from localAPI (#178)

* fixing check for invalid format of params (#179)

Since we moved to string params that is converted, this check was missed.

* updated the default values to reasonable numbers (#180)

The min hertz/gas was set to 1 trillion, so an intdeterminate loop could run seemingly forever.  I lowered to a reasonable number after some testing.
High priority for post-main-net is to add hert limits to the initial transaction request and at least set the limit to available hertz if nothing is specified.

* removed code that would allow null in the result list (#182)

* check case where deduction > balance (#181)

* Main net epoch and default balance and account (#183)

* DG-1103 (#185)

* deduct hertz when execute contract fails

* Fixing the issue with hertz deduction not registering

* removing invalid print

* adding multiplier for hertz (#187)

* handle fixed byte size arguments in contracts (#188)

have to support hard coded sizes from 1 - 32

* DG-809 Delegate&seed updates (#186)

* skeleton for update tx type

* add helpers for update

* update code (no restart yet)

* pull latest and reload daemon for GC environment

* restart service or exit if not a service

for exit, user will have to restart manually

* removed saving the pem files (#191)

* moved function into helper and corrected import (#192)

* removed another missed import (#195)

had to movd DeleteFile from tools project into helper

* Funny 404 (#194)

* DG-1154

* learned about backtick mulit-line strings

* removed unused import

* fixed multi-line formatting of 404 page (#196)

* Replay genesis (#201)

* progress on sync problems

* now synchronizing gossips and removed accounts

* ready to recreate state

* added RecreateState(); still need to fix ExecuteTx()

* Execute and Replay looks good; needs testing

* all delegates connecting and recreating state

* finalized sync Map reloading if over 2 min

* commented out update transactions (#202)

* Updated logo to labs

* git merge missed one conflict

* cache updateGRPC improperly commented fix
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants