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

Improved Json Serialization #6152

Merged
merged 134 commits into from
Dec 11, 2023
Merged
Changes from 1 commit
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
9b184f2
System.Text.Json.Serialization
benaadams Mar 17, 2023
41c1b77
System.Text.Deserialization
benaadams Mar 21, 2023
dcbc874
Fixes
benaadams Apr 21, 2023
96ebbd1
lint
benaadams Apr 21, 2023
c67977f
Fixes
benaadams Apr 21, 2023
0c11085
Fix
benaadams Apr 21, 2023
157e4ab
Fixes
benaadams Apr 22, 2023
ab92141
Fixes
benaadams Apr 24, 2023
d037370
Lint
benaadams Apr 24, 2023
72c3d67
Fix invalid Json
benaadams Apr 24, 2023
b17a023
u8
benaadams Apr 24, 2023
c00cd5e
Fixes
benaadams Apr 24, 2023
a5a64c3
Fixes
benaadams Apr 25, 2023
f43e7bf
Fix
benaadams Apr 25, 2023
e9d5a6c
Don't go via exception for short reverts
benaadams Apr 25, 2023
ef3d3eb
Fix
benaadams Apr 25, 2023
59a3ae1
Fix
benaadams Apr 26, 2023
e88daf6
Multi-doc batch
benaadams Apr 27, 2023
1a439d9
Lint
benaadams Apr 27, 2023
6936a25
Merge conflict
benaadams Apr 27, 2023
d9ba033
Fixes
benaadams Apr 27, 2023
e4c026c
Lint
benaadams Apr 27, 2023
5799e2a
Fix tests
benaadams Apr 29, 2023
1536c35
Fix test
benaadams Apr 29, 2023
f0f751f
Tidy up
benaadams Apr 29, 2023
ecb2e4e
Turn of sync IO
benaadams Apr 30, 2023
be3a342
Async
benaadams Apr 30, 2023
34a1d54
Don't double Advance
benaadams Apr 30, 2023
c6c8fec
Async wrapper stream use
benaadams Apr 30, 2023
5514cac
Merge branch 'master' into Json-Deserialization
benaadams May 1, 2023
91e07d6
Merge branch 'master' into Json-Deserialization
benaadams May 9, 2023
28a344f
Fix build break
benaadams May 9, 2023
322ef7f
Merge branch 'master' into Json-Deserialization
benaadams Jun 14, 2023
8ab6ec9
Merge issues
benaadams Jun 14, 2023
ba4d771
Merge branch 'master' into Json-Deserialization
benaadams Jun 20, 2023
49000dd
Compile issues
benaadams Jun 20, 2023
444a605
File scoped namespaces
benaadams Sep 29, 2023
9078121
Merge branch 'master' into Json-Merged
benaadams Sep 29, 2023
5cbdd84
Formatting
benaadams Sep 29, 2023
016ae55
Merge fixes
benaadams Oct 2, 2023
0470632
Test Merge fixes
benaadams Oct 2, 2023
ab578a7
lang ver
benaadams Oct 2, 2023
f89ca26
Purge Newtonsoft
benaadams Oct 2, 2023
b5d5cea
Merge branch 'master' into Json-Merged
benaadams Oct 9, 2023
c834f64
Fix evm tests
benaadams Oct 9, 2023
cdaf00f
Fix parentBeaconBlockRootString serialization
benaadams Oct 12, 2023
6de4957
Change type for serialization
benaadams Oct 12, 2023
4670199
Merge branch 'master' into Json-Merged
benaadams Oct 16, 2023
c1b14d1
Ignore syncing
benaadams Oct 16, 2023
96a54f2
Capitalised bools are invalid json
benaadams Oct 16, 2023
bb997a3
Capitalised bools are invalid json
benaadams Oct 16, 2023
b4c847b
Merge branch 'master' into Json-Merged
benaadams Oct 23, 2023
cac495a
Fix merge conflict
benaadams Oct 23, 2023
c2b5fb2
Merge branch 'master' into Json-Merged
benaadams Oct 24, 2023
fa7eeb0
Fix data serialization
benaadams Oct 24, 2023
064f0d6
Fix trace entry
benaadams Oct 24, 2023
b300aae
Merge branch 'master' into Json-Merged
benaadams Oct 27, 2023
b5ffa8a
Merge conflicts
benaadams Oct 27, 2023
4c5505e
Formatting
benaadams Oct 27, 2023
10c780e
Merge branch 'master' into Json-Merged
benaadams Nov 9, 2023
c69dcbc
Missed merge
benaadams Nov 9, 2023
28deb3b
whitespace
benaadams Nov 9, 2023
c95919e
Fix EthereumTests Json
benaadams Nov 21, 2023
2e09edf
Ethereum tests
benaadams Nov 21, 2023
e62e14a
Fix hex prefix
benaadams Nov 21, 2023
1621eab
Fix difficultly test
benaadams Nov 21, 2023
7fe0186
Add serializer options
benaadams Nov 21, 2023
c8cc92a
Fix abi tests
benaadams Nov 21, 2023
dd45f0a
Merge branch 'master' into Json-Merged
benaadams Nov 21, 2023
25cb9de
Merge branch 'master' into Json-Merged
benaadams Nov 28, 2023
3880d35
Merge conflict
benaadams Nov 28, 2023
3216dbe
Merge branch 'master' into Json-Merged
benaadams Nov 28, 2023
2785a26
Feedback
benaadams Nov 28, 2023
ca38c66
revert to previous
benaadams Nov 28, 2023
3becbb2
Remove Netwonsoft
benaadams Nov 29, 2023
41b50a5
Merge branch 'master' into Json-Merged
benaadams Nov 29, 2023
05cf2f9
cosmetics
LukaszRozmej Dec 1, 2023
b81fb25
Pipeline Json responses
benaadams Dec 3, 2023
5fc41a5
Merge branch 'master' into Json-Merged
benaadams Dec 4, 2023
667e3e1
Merge fixes
benaadams Dec 4, 2023
b8988eb
Whitespace
benaadams Dec 4, 2023
a816ce3
fix test
benaadams Dec 4, 2023
e4625b8
Send multiple messages
benaadams Dec 4, 2023
db9e6a1
Optional stream closing
benaadams Dec 5, 2023
d8bc010
Merge branch 'master' into Json-Merged
benaadams Dec 5, 2023
cf7ac28
Case insensitive
benaadams Dec 5, 2023
a32aaa8
Merge branch 'master' into Json-Merged
benaadams Dec 5, 2023
b03c94f
Merge branch 'master' into Json-Merged
benaadams Dec 6, 2023
9087fb5
Update Nethermind.Serialization.Json.csproj
benaadams Dec 6, 2023
c0fd0b2
Whitespace
benaadams Dec 6, 2023
32de4ed
Update JavaScriptObjectConverter.cs
benaadams Dec 7, 2023
86b7d5f
Merge branch 'master' into Json-Merged
benaadams Dec 7, 2023
ad6062a
Feedback
benaadams Dec 7, 2023
a13c07b
Undo AI
benaadams Dec 7, 2023
730f59a
Put orders back
benaadams Dec 7, 2023
7414d13
Feedback
benaadams Dec 8, 2023
38faf4c
Whitespace
benaadams Dec 8, 2023
5510924
Use static constructor
benaadams Dec 8, 2023
280778b
Remove irrelevant test parameter
benaadams Dec 8, 2023
732490d
Add BigIntegerConverterTests back
benaadams Dec 8, 2023
edbc5a5
Use FrozenDictionary
benaadams Dec 8, 2023
6b4ae92
Deserialize collection to ArrayPoolList using GetArrayLength for init…
LukaszRozmej Dec 8, 2023
bb5fa60
simplify
LukaszRozmej Dec 8, 2023
51555be
Throw more explicit exception
benaadams Dec 8, 2023
3bf3684
name cleanup
LukaszRozmej Dec 8, 2023
f9feba9
Merge branch 'master' into Json-Merged
benaadams Dec 8, 2023
2dcce2e
Merge conflicts
benaadams Dec 8, 2023
4179ee4
Merge conflict
benaadams Dec 8, 2023
2adf079
Add comments
benaadams Dec 8, 2023
7cdd14c
more comments
LukaszRozmej Dec 8, 2023
4c61397
Consolidate Disposable
benaadams Dec 8, 2023
d27a21e
Use FrozenDictionary for RpcLookup
benaadams Dec 8, 2023
f2ca3a0
Case sensitive
benaadams Dec 8, 2023
3c9d55d
Be consistent on parsing type
benaadams Dec 9, 2023
e301922
Use correct type in test
benaadams Dec 9, 2023
fc2425d
Optimizations
benaadams Dec 9, 2023
8256cb0
Optimizations
benaadams Dec 9, 2023
cff1832
Optimize
benaadams Dec 9, 2023
20b3e91
Optimize
benaadams Dec 9, 2023
30b4d68
Vectorize FromUtf8 hex
benaadams Dec 9, 2023
ba5c114
Optimization
benaadams Dec 9, 2023
74f5062
Optimize
benaadams Dec 10, 2023
94b08e3
Parallel deserialize
benaadams Dec 10, 2023
ac2cc64
Revert "Parallel deserialize"
benaadams Dec 10, 2023
59069e1
Use using
benaadams Dec 10, 2023
b7aa46e
Fix check
benaadams Dec 10, 2023
ef109b0
Parallel deserialize
benaadams Dec 10, 2023
94642d1
Increase parallelThreshold
benaadams Dec 10, 2023
fcca2bc
Use correct length
benaadams Dec 10, 2023
0838b3a
Cache Reflection Parameters
benaadams Dec 10, 2023
55fcf10
Fix tracing output
benaadams Dec 11, 2023
db4cced
Match geth output
benaadams Dec 11, 2023
2cd34ac
Turn AllowSynchronousIO back on
benaadams Dec 11, 2023
d498700
Revert object type arrays
benaadams Dec 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/Nethermind/Nethermind.JsonRpc/JsonRpcService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

using Nethermind.Core;
using Nethermind.Core.Attributes;
using Nethermind.Core.Collections;
using Nethermind.JsonRpc.Data;
using Nethermind.JsonRpc.Exceptions;
using Nethermind.JsonRpc.Modules;
Expand Down Expand Up @@ -269,7 +270,7 @@ private void LogRequest(string methodName, JsonElement providedParameters, Param
{
try
{
List<object> executionParameters = new List<object>();
ArrayPoolList<object> executionParameters = new ArrayPoolList<object>(expectedParameters.Length + missingParamsCount);
LukaszRozmej marked this conversation as resolved.
Show resolved Hide resolved
int i = 0;
foreach (JsonElement providedParameter in providedParameters.EnumerateArray())
{
Expand Down Expand Up @@ -334,7 +335,10 @@ private void LogRequest(string methodName, JsonElement providedParameters, Param
executionParameters.Add(Type.Missing);
}

return executionParameters.ToArray();
object[] returnArray = GC.AllocateUninitializedArray<object>(executionParameters.Count);
executionParameters.CopyTo(returnArray, 0);
executionParameters.Dispose();
return returnArray;
}
catch (Exception e)
{
Expand Down