Roman Khimov
f15a2401b1
cli/server: close the chain gracefully on restore even on error
...
Not an issue for dumper, but when restoring we should correctly save
everything already imported even if the subsequent block fails.
2019-12-27 12:38:07 +03:00
Roman Khimov
1f4b7b366e
cli/server: skip genesis block on restore if it matches ours
...
Enables more convenient imports without skipping over the block 0.
2019-12-27 12:25:39 +03:00
Roman Khimov
ae003a1578
cli/server: fix db restorer math wrt skip
...
Given `-s 1` with a dump of 6001 blocks it skipped the first one and then
tried to import the next 6001 which failed with EOF because there are only
6000 blocks left.
2019-12-27 12:15:47 +03:00
Roman Khimov
b706130175
cli/server: redo dumper to dump blocks from 0
...
NGD dumps are all zero-based and even though I don't like it (genesys block
should not be imported, it's the root of chain trust), we have to conform to
this convention for interoperability with C# nodes (otherwise they're not able
to import our dumps).
This also renames `skip` dumper parameter to `start` which is more logical
now, the default is to start the dump from block number zero.
2019-12-27 12:11:57 +03:00
Roman Khimov
7aa7490fb2
cli: fix wrong db dump format
...
It was broken by 03ff2976ed
that changed fixed
32-bit length encoding to VarBytes.
2019-12-26 20:03:06 +03:00
Roman Khimov
89b6cbf795
address: make Prefix overridable
...
As it should be, it's specified in the configuration file (and it should be
treated as byte in the config)
2019-12-25 15:42:18 +03:00
Vsevolod Brekelov
9541029303
cli: add metrics to dump and restore calls
2019-12-17 14:13:07 +03:00
Vsevolod Brekelov
0085831ec5
network: add Pprof metrics
...
Since we have some perf issues from time to time it is good to have pprof debugger. Disabled by default.
2019-12-17 14:13:07 +03:00
Roman Khimov
54d888ba70
io: add type-specific read/write methods
...
This seriously improves the serialization/deserialization performance for
several reasons:
* no time spent in `binary` reflection
* no memory allocations being made on every read/write
* uses fast ReadBytes everywhere it's appropriate
It also makes Fixed8 Serializable just for convenience.
2019-12-12 20:19:50 +03:00
Evgenii Stratonikov
7179e4ba9f
util: add LE suffix to Uint256 methods
2019-12-06 12:16:55 +03:00
Evgenii Stratonikov
57efad912c
util: add LE suffix to Uint160 methods
2019-12-06 12:16:55 +03:00
Roman Khimov
c8aa061421
cli/wallet: use more secure way to read passwords
...
They were printed in plaintext, believe it or not. Also, `ssh/terminal` does
some proper magic to really read something from the terminal.
2019-12-03 20:04:52 +03:00
Roman Khimov
852e6a335b
compiler: move it up from vm
...
It really deserves it, I think. Especially given that it doesn't have any
direct usage of `vm` package now.
2019-12-03 18:23:46 +03:00
Roman Khimov
f48228ef7d
Merge pull request #467 from nspcc-dev/errcheck_297
...
This patchset closes #297 and #457 .
2019-12-03 15:06:11 +03:00
Vsevolod Brekelov
f5e2401984
vm: removed logging to fix #457
2019-12-03 13:49:49 +03:00
Vsevolod Brekelov
03ff2976ed
io: refactoring for using WriteVarBytes instead of WriteLE
...
goal is to be consistent with C# implementation.
For writing []byte WriteBytes used and for byte - WriteVarByte.
2019-12-03 13:49:33 +03:00
Roman Khimov
53e7807d2d
smartcontract: implement non-test invokers
...
Do something real, yeah!
2019-11-29 19:00:24 +03:00
Roman Khimov
82c658613e
cli/smartcontract: allow float gas specification
...
It can be useful for non-deployment transactions.
2019-11-29 18:28:03 +03:00
Roman Khimov
fd93986503
cli/smartcontract: move common endpoint parameter definition
...
Put more emphasys on that it should be trusted and use localhost example
(because you usually do trust it).
2019-11-29 18:16:46 +03:00
Roman Khimov
d8ef9ba0ec
cli/smartcontract: make smartContractTmpl a constant
...
As it can be a constant and should be a constant.
2019-11-29 18:11:49 +03:00
Roman Khimov
8a5ac12df8
rpc: make generic SignAndPushInvocationTx out of DeployContract
...
SignAndPushInvocationTx() is gonna be used for more than just deploying
contracts.
2019-11-29 17:59:07 +03:00
Roman Khimov
b0a22cf1e7
cli/smartcontract: add testinvoke cli command
...
That uses new 'invoke' RPC method.
2019-11-28 19:40:13 +03:00
Roman Khimov
e63b25d5ad
smartcontract: add user-facing testinvokefunction command
...
With a very special syntax.
2019-11-27 15:12:15 +03:00
Roman Khimov
d7d7215392
cli: rename testinvoke to testinvokescript
...
To not confuse it with future testinvokefunction.
2019-11-27 13:00:11 +03:00
Roman Khimov
aae3e217a8
rpc/cli: implement contract deployment, fix #474
...
It's used like this:
./bin/neo-go contract deploy -i 1-print.avm -c neo-go.yml -e http://localhost:20331 -w KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr -g 100
2019-11-20 16:12:40 +03:00
Roman Khimov
3adc9150d3
cli: rework smart contract configs
...
Use plain yaml structure.
2019-11-20 16:12:40 +03:00
Vsevolod Brekelov
7b6756cb7e
cli: compatible with NGD reading/writing blockchain dump
2019-11-11 13:15:34 +03:00
Roman Khimov
4736dad8f0
cli: fix skip usage in DB dump/restore
...
It was failing to process any blocks at all when (skip >= count) and in other
cases it processed wrong number of blocks.
2019-11-08 17:00:02 +03:00
Roman Khimov
b05754deac
core: add Close() to blockchainer, implement it to properly close chain
...
Before it the deferred function in Run() was actually never able to properly
close the Store, so we weren't synching the latest state to the disk.
2019-11-08 12:19:54 +03:00
Vsevolod Brekelov
d799c98cfe
io: move common function and add unit tests for it
2019-11-06 17:12:33 +03:00
Vsevolod Brekelov
11ce73af28
server: add log-path and address configuration
...
- LogPath can be configured through config
- node,rpc and monitoring address can be configured thought command line
or config
2019-11-06 15:58:54 +03:00
Roman Khimov
b46dd295bc
rpc: add CORS workaround for RPC
...
This one enables our RPC to be called from the browser if there is a
need. It's insecure and not standards-compliant, thus this behaviour is
configurable is not enabled by default. It makes our node with this workaround
enabled compatible with neo-mon monitoring.
Originally debugged by @anatoly-bogatyrev in #464 .
2019-11-01 13:39:47 +03:00
Roman Khimov
2f6e678a19
Merge pull request #463 from nspcc-dev/smartcontract-fixes
...
Smartcontract RPC fixes
2019-10-29 20:54:46 +03:00
Vsevolod Brekelov
d374175170
monitoring: add prometheus monitoring
...
add init metrics service which uses prometheus;
add configuration for metrics service;
add monitoring metrics for blockchain,rpc,server;
2019-10-29 20:51:17 +03:00
Roman Khimov
2b3fb14a4a
smartcontract: allow RPC endpoint to be specified, fix #363
...
We already have support for running scripts inside VM CLI, so here we can just
make RPC endpoint configurable and be done with it. It also allows to use
local RPC endpoint if there is a need to.
2019-10-29 16:32:49 +03:00
Roman Khimov
579aa31ddd
compiler: drop useless options parameter to Compile()
...
It's not used in any way there.
2019-10-29 13:02:54 +03:00
Roman Khimov
e319c6c638
cli: move avm inspect from vm to contract command
...
Make inspect work with avms by default and with go files if told so. In the
end this makes our CLI interface more consistent and usable. Drop useless
CompileAndInspect() compiler method along the way.
2019-10-29 12:56:44 +03:00
Roman Khimov
3cbb699eb7
Merge pull request #426 from nspcc-dev/logger_247
...
Change fmt.Println to log, close #247 .
2019-10-22 14:41:30 +03:00
Vsevolod Brekelov
e2bfff8666
vm: removed mute mode and pushed logging to upper lvl
...
VM should be responsible for code execution and in case anyone interested in additional logging or errors they could handle them like we do it iin cli.
2019-10-22 13:44:14 +03:00
Roman Khimov
f1750d117b
Merge pull request #440 from nspcc-dev/db-dump-restore
...
DB dump and restore, fixes #436 .
2019-10-21 15:42:05 +03:00
Roman Khimov
c885a69edb
cli: add db dump/restore commands
...
Dump given number of blocks (from the given offset) to file and restore them
from it. Fixes #436 .
2019-10-21 14:18:09 +03:00
Roman Khimov
dafd385f57
cli: extend NewCommand() to NewCommands()
...
So that each module could now return an array of commands. It's gonna be used
in the future to extend them.
2019-10-19 23:58:45 +03:00
Vsevolod Brekelov
59e3bd2fa9
codestyle: fix error string should not be capitalized
2019-10-18 18:34:58 +03:00
Roman Khimov
dca332f333
vm: use new Context.Next() to properly dump programs
...
Fix #295 , deduplicate code and add `inspect` parameter to the vm command to
dump AVMs (`contract inspect` works with Go code).
2019-10-04 16:13:39 +03:00
Roman Khimov
c68a254eba
Merge pull request #404 from nspcc-dev/move-user-docs
...
Move user docs, fix #339 .
2019-09-18 12:50:06 +03:00
Roman Khimov
acb25fb880
cli: move README to docs, refs. #339
2019-09-17 19:07:25 +03:00
Vsevolod Brekelov
adc880d323
blockchain: server runs goroutine instead of blockchain init
...
rework initBlockChain in order to have controllable way of running
blockchain;
remove context from initBlockChain func;
2019-09-17 15:27:40 +03:00
Vsevolod Brekelov
264dfef370
storage: close function
...
add close function to storage interface
add common defer function call which will close db connection
remove context as soon as it's not needed anymore
updated unit tests
2019-09-16 18:52:47 +03:00
Vsevolod Brekelov
4f680703a4
storage: multiple DB support and Redis support
...
add config which closes #336
add redis db support
2019-09-10 17:22:21 +03:00
Roman Khimov
a9b9c9226d
*: add/fix godoc comments to satisfy golint
...
Fixes things like:
* exported type/method/function X should have comment or be unexported
* comment on exported type/method/function X should be of the form "X ..."
(with optional leading article)
Refs. #213 .
2019-09-03 17:57:51 +03:00