Transactions are now retried if a communication failure occurs during execute() or commit().
Note that this may result in duplicate entries in the notary request log, and false state
commit conflicts (the notary client would still receive a successful response).
We need to tidy this up in the future.
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
* Renamed tables and constraints to have name < 30 characters
* Using AttributeConverters were possible for custom types
* NodeInfoEntity has relationship to accepted NetworkParametersEntity, not the hash
* Improved logging in the node
* Fix node_notary_request_log table - update Liquibase xml migration
* (Unrelated to ENT-1634) Add database SQL setup for several tests to pass database integration tests, update SQL scripts for new tables
* Implementation of NetworkParameters updates
Implementation of NetworkParameters updates for network-management
server side of the process.
Change the way network parameters are read up on network-management
startup. Introduced 3 flags to clearly communicate intentions:
initial-network-parameters, update-network-parameters and flag-day.
* Address Shams comments
* Address comments
* NetworkMapStorage refactor
getLatestNetworkParameters returns NetworkParametersEntity
* TODO Exit after parameters update
Started implementing feature requested by devops. TODO: Fix
NodeRegistrationTest
* Code cleanup
* Merged the two cmd line flags into one --set-network-parameters. The idea being to simply check if there are any active network parameters to determine if it's an update or not.
Applying network parameters causes the server to exit once done (ENT-1559).
* Merge fixes
* Minor cleanup
* Small fixes
* Merge fixes and cleanup
* TODO Implementation of cancelUpdate flag
Will slightly change after more manual testing
* Small cleanup
* Address comments
Add OneToOne relation between ParametersUpdate and NetworkParameters.
* Address comments fix tests
* Upgrade metrics library and histogram implementation
* Only write to the "per second" checkpoint bandwidth histogram once per second, maximum.
* Bug fix
* Review feedback and fix unit test
* Fix IRS demo to use specific metrics version in spring boot
Remove default async db flush
Add in-memory P2P deduplication until we commit the ID persisting tx
Add some explaining comments
Make scheduled state kickoffs atomic with flow starts
* CORDA-1208: Notary service should persist the notarisation request signature along with the committed input states.
This required modifying the uniqueness provider interface to accept the signature in addition to input states.
Until now the committed state log used to be stored as a map of (state reference -> (tranasction id, consuming party)).
Adding the serialized signature would mean inflating each state entry by around 700 bytes, which would be grossly inefficient.
Instead, two tables are now used: one for storing (state referece -> transaction id) map, and another for storing the notarisation
request details (transaction id, consuming party, date, signature).
* Update api - all of these changes are only related to custom notaries
Old code failed with:
```
11:34:01.536 [main] ERROR net.corda.node.internal.Node - Exception during node startup
java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/Program%20Files/JetBrains/IntelliJ%20IDEA%20Community%20Edition%202017.3.1/lib/idea_rt.jar
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) ~[?:1.8.0_144]
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) ~[?:1.8.0_144]
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:1.8.0_144]
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) ~[?:1.8.0_144]
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) ~[?:1.8.0_144]
at java.nio.file.Paths.get(Paths.java:84) ~[?:1.8.0_144]
at net.corda.node.utilities.JVMAgentRegistry.resolveAgentJar(JVMAgentRegistry.kt:46) ~[classes/:?]
at net.corda.node.internal.AbstractNode.initialiseJVMAgents(AbstractNode.kt:785) ~[classes/:?]
at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:199) ~[classes/:?]
at net.corda.node.internal.Node.start(Node.kt:335) ~[classes/:?]
at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:146) ~[classes/:?]
at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:120) [classes/:?]
at net.corda.node.Corda.main(Corda.kt:16) [classes/:?]
```
Basic pieces of bridge, still very rough
Work in progress
Fixes after rebase
Primitive float tunnel implementation
Put explanatory comments on the interfaces. Add support for different SSL KeyStores for the different connections to/from the bridge and float.
Add a couple more comments
Cleanup
Fix some issues
Use a new custom header to relay the login identity from bridges. (Will add more security to this shortly)
Make key protection logic a bit clearer in the comments
Create some basic test and integrationTests
Add a couple of tests of the BridgeAMQPListenerService
Add some basic tests
Correct comment
Fixup after rebase
Fixup after rebase
Fixup after rebase
Explicit parameter types to work on build box.
Address PR comments
Address some of Mike's PR comments.
Re-enable test on enterprise.
Don't sweep up node default config
Remove obsolete config entry
Correct merge mistake
Configurable whitelist headers on bridge
Don't access primary artemis session from different threads used by inbound packet pathway.
Fix unit test
The problem with the previous implementation is that the transaction would be deserialized with the schema specified
in the serialized form, but the calculation of the id would involve re-serializing properties using a local serialization context
which might produce a different result.