trueblocks / trueblocks-core Goto Github PK
View Code? Open in Web Editor NEWThe main repository for the TrueBlocks system
Home Page: https://trueblocks.io
License: GNU General Public License v3.0
The main repository for the TrueBlocks system
Home Page: https://trueblocks.io
License: GNU General Public License v3.0
These data files must be hidden from the user. Also--if the user changes the list of accounts that goes into the hash cache, then the hash cache must either be re-written entirely (if there are new accounts) or cleaned up, if there are accounts that have been removed.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/143
I’m not sure where to ask this. I’m running a node, but I’m not mining. Periodically, I retreive block and transaction data using RPC. It then save that data locally. I hear all this talk about re-orgs, so I would expect that once in a while, some of the data I pull would be “re-orged"
I should save data for X blocks. And then spin and re grab data fresh to check for re-orgs. This will be a big deal if the blocks are being re-orged, but I am not reflecting that.
From: https://github.com/Great-Hill-Corporation/ethslurp/issues/146
and merge the resulting ABI together to create a single parseLib
Search for // TODO: THIS PER DISPLAY LOOKUP IS SLOW
From https://github.com/Great-Hill-Corporation/ethslurp/issues/125
The local cache of an account gets duplicate events if the program is stopped and started (and/or) the 'startDate' is forcing a duplicate record.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/139
I don't really handle the constructor or the default function correctly in the monitor code. Look for this code:
if (!func.name.empty())
functions[functions.getCount()] = func;
If you remove this, it will show a new line in the grabABI tests, but they are not correct.
Or better yet, --latest should be an option on getBlock. Further, it should report how many blocks it's behind. It should also report latest block from the hard drive cache and the miniBlock cache
From https://github.com/Great-Hill-Corporation/ethslurp/issues/148
Or any other duplicated stuff. It also does not have pointers to pBlokc, nor does receipt have pointers to pTrans
This shows up as empty timestamp, empty cumultageGas, etc in toJSON 50004
See getBlock tests
From https://github.com/Great-Hill-Corporation/ethslurp/issues/122
This is the old 'pairFile' problem
If lastBlock is first picked up from config.toml file do not add one. If lastBlock comes from the lastBlock file or the cacheDisplay function do add a one. Simple, but annoying. Maybe better to always just write lastBlock - 1 to the file or return it from the function
-a should mean return address only
I should, given an address, pull its abi file, its source code (if found) and convert them both to something more easily readable as soon as I touch them as opposed to current which sort of just does this on an as-needed basis.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/142
An internal call in this transaction (0xd20a95a9f051d6961ca766a9b2d0f18b6afdf6d8465931a3f70f2c4b1c023688) ran out of gas, but this transaction did not run out of gas, so I don't identify them as inError. The gas!=gasUsed, therefore, I don't trace it.
Look for this comment: // TODO: This should be a binary search not a scan. This is why it appears to wait
From: https://github.com/Great-Hill-Corporation/ethslurp/issues/136
It should be $(HOME)/.quickBlocks
The EMPTY #define is just ugly. I was going to remove it, but I don't think I should as if I do and I use "" instead of EMPTY there will be that many more empty strings laying around. Probably better to have a single system-wide empty string.
Maybe change the name to emptyStr or something
From https://github.com/Great-Hill-Corporation/ethslurp/issues/131
In monitors especially if two smart contracts have similar function names.
https://github.com/Great-Hill-Corporation/ethslurp/issues/124
The code for fromJSON is no recursive. It works for Ethereum because none of the classes are recursive, but it doesn't work in general.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/126
The reason whenBlocks exsits is so people can see how close they are to being synced. It would be interesting to show the speed of the most recent X blocks synced per second. When the hack blocks are occuring, it's super slow. When the regular sync is happening, it's much faster.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/149
from https://github.com/Great-Hill-Corporation/ethslurp/issues/132
Plus, it should default to latest block if none is presented
From https://github.com/Great-Hill-Corporation/ethslurp/issues/130
This code was a very early way to parse functions but it is totally wrong. It has all been subsumed by the monitors, but does have the benefit of not requiring a separate piece of software. In other words remove it, but don't lose the ability to parse a totally arbitrary input data the way ethslurp does. But also don't require a full-fledged monitor program.
In other words--input parsing should happen fully through the ABI if that is the only thing present, but through the parse library if that is what is needed for speed or flexibility. Note that monitors use this code to fill in the [{FUNCTION}] tag.
There are many others probably, but do I want to check on every request?
From https://github.com/Great-Hill-Corporation/ethslurp/issues/129
For example, in CFund, which is derived from CTransaciton, the Serialize function ignores the return value (it's a void return anyway). If the parent does not serialize (because of writeDeleted == false, for example) then we do serialize the child. This may already be fixed.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/145 in old ethslurp repo
When I write the ABI file to ~/.ethslurp it isn't stored correctly. I think it's simply a matter of surrounding with '[' and ']', but make sure it's correct.
I use '0' to determine if the input is okay, but that makes it not work with block '0'.
It would be interesting to have block '0' because we want to know what happened then.
If the freshener is running and I try to run speedTest, speedTest hangs because it cannot find the end of file. Freshener should fail if the miniBlock database is in memory, which it is in teh case of loading it.
Plus the path in the config file should not be there. If the program is run in a folder, it should look for classDefinitions and if it can't find it, don't run, and then use the pwd for the folder in the config file
This is for makeClass
From https://github.com/Great-Hill-Corporation/ethslurp/issues/135
not '0' which is what it does now for getBlock 50004. Plus it's both int he block and the receipt.t
From https://github.com/Great-Hill-Corporation/ethslurp/issues/123
At the very least, you cannot use warp, and you must have tracing = on. For 100% accuracy, you must also have pruning = archive.
In ~/.ethslurp/abis there are .abi files and .json files. Some of the .json are uppercase/lowercase, all of the .abis are lowercase only filenames. Weird. Should fix it.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/141
Contract creation is not noticed or recorded yet, but it should be pretty easy.
I simply have to look for contract address in the transaction's receipt in ofInterest function
From: https://github.com/Great-Hill-Corporation/ethslurp/issues/144
Currently deep check only checks that each block has the correct list of transactions hashes. It should actually decend into the transactions and then into the receipts and then into the logs to check all data fields from QuickBlocks to the node.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/140
Storing the configuration files in a shared folder (~/.makeClass) doesn't work because classes conflict with each other with different implementations. Store the config files in the folders where the code arrives. Two reasons. Won't have to store the path in the file, and two generating source will be next to the code it generates. Right now, generating source is invisible.
makeClass, when it encounters a new class, should ask for a list of fields and a directory and create the file itself
If a smart contract uses leading underbars (_), then all items in the switch statement check that first character. This is slower than it needs to be.
I need a much faster, and yet still decentrlaized way to accumulate per-contract caches
Don't really know what this means.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/121
Store the parsed variable in the input data field. It's easy to generate the input data from the data itself and an ABI, it's hard to generate the parsed data because for every transaction, we have to search through all signatures. Also-- we should add counter to function and sort the function in the ABI by most frequent first thereby lessening search time.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/127
Like [{NOW}], [{DATE:MONTH}] [{ADDR}] [{HEADER}][{RECORDS}] etc.
Also--these should be able to accept arbitrary internal text such as [Generated on {NOW}.] Perhaps this requires a new class called something like 'Generic'
Now that Slurp is a full fledged class it can take many additional fields for summary:
name
nTransactions
toValue
avgValue
largestValue
smallestValue
totalGasUsed
averageGasPrice
etc.
From https://github.com/Great-Hill-Corporation/ethslurp/issues/23
If you run monitors watch.sh freshen x and then run testall, it will mess up the miniblocks mostly because ti takes so long to read miniblocks, and if it gets rewritten in between, it doesn't know where the end of the file is. Should protect against allowing write if miniblock is in the process of reading.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.