* Cleanup and improvements to the serialisation format of JacksonSupport (needed for CORDA-1238) (#3102)
Also deprecated all the public members that shouldn't have leaked into the public API.
(cherry picked from commit 3bb95c3)
* CORDA-1238: Updated JacksonSupport to support SerializedBytes, CertPath, X509Certificate and the signature classes (#3145)
SerializedBytes are first converted to the object it represents before being serialised as a pojo.
These changes will be needed to support the the blob inspector when it will output to YAML/JSON.
(cherry picked from commit b031e66)
* Cherry picked part of commit 824adca to port over *only* the JackSupport refactoring.
* CORDA-1238: Moved the blob inspector out of experimental and wired it to JackonSupport (#3224)
The existing output format was not complete and so was deleted to avoid it becoming a tech debt. We can always resurrect it at a later point.
(cherry picked from commit 4e0378d)
* Added back support for parsing OpaqueBytes as UTF-8 strings in JacksonSupport (#3240)
(cherry picked from commit d772bc8)
* Cleaned up blob inspector doc (#3284)
(cherry picked from commit b7fbebb)
* Blobinspector: trace level logging with --verbose (#3313)
(cherry picked from commit 6a2e50b)
* Cherry picked part of commit 3046843 to fix issue with --version
* Fixes to the api file
Implement removal of stale nodes from network - backport (#3128)
Implement removal of stale nodes from network
Add eventHorizon to network parameters structure. Add republishing of
node info on 1 day intervals - it is treated by network map as heartbeat from node indicating if it's alive or not. Add removal of old node infos on network map signing.
Add copy method to network parameters data class
Add JvmOverloads annotation to the constructor, because it's data class
exposed in API
make NetworkParameters serialization compatible (#3234)
Cope with API checker inlining annotations
* REVERT - CORDA-1264 - Needs more thought prior to release
This reverts commit 33af80ac55.
Since this causes regressions in the way errors are propogated to
clients it seems best to not break or hold up 3.1 but revert this commit
and move on
* fix revert
* Api scanner backport and update of api-current.txt
* Updated api-current based on current state of release branch
* Update to most recent version of api scanner
* Fix a couple of issues with the merge and regenerate the api file with the most recent version of the scanner.
* Update changelog/release notes
* CORDA-696: Ensure deterministic transaction id calculation for contract upgrade and notary change transactions.
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.
* Support forwards compatibility for new hidden or visible properties
* Some refactoring and updating api docs
* Fix tests & add custom serializer in case the transaction is captured in a checkpoint
* Update id calculation for notary change transactions as well - no filtering is involved
* Use computeNonce
* More refactoring
* Use helper for computing component hashes
* Optimise id calculation
* Fix another non-serializable exception, add docs, fix a possible security issue.
* Update API definition to reflect methods added to make more exceptions serializable
* CORDA-986 and CORDA-985 CompositeKey and Signature verification performance fixes (#2467)
* CORDA-696: Create separate transaction types for contract upgrade transactions.
Add rationale around upgrade transactions
Move contract upgrade transaction resolution logic into internal until it's stabilised.
Throw a better exception when contract attachment not found
Default legacy contract constraint to always accepting - needs to be changed to whitelist constraint before merging
Introduce a new upgraded contract interface that allows specifying the legacy constraint.
Remove StateLoader, make all tx resolution functions take in ServicesForResolution
Contract upgrade transactions can handle whitelist by zone constraints
When creating a contract upgrade transaction, make sure the attachment of the old cordapp gets attached when using hash constraints.
Attachment lookup for a given contract class name only scans currently loaded cordapps, and we don't load old versions of cordapps.
* Make NotaryFlow.Client more modular and easier to customise
* CORDA-1010: Send a request signature in addition to a transaction to the notary (#2527)
CORDA-1010: Notary flow - clients now send a signature over a notarisation
request in addition to the transaction. This will be logged by the notary
to be able to prove that a particular party has requested the consumption
of a particular state.
* CORDA-939 Modify Api Scanner to check api for internal exposures (#2510)
* Update check api changes to look for internals
* Update several more uses of internal
* Make check-api-changes script filter out internal class usages
* Make CordaClock part of API
* Update api-current.txt
* Remove exclusion of nodeapi.internal
* Remove access to CordaPersistence from public api
* Don't expose DB Connection from StartedMockNode and remove unnecessary transaction from CustomVaultQueryTest
* Make internal tests that use need db access use InternalMockNetwork
* Make test certificates internal
* Address further review comments
* Revert some accidental changes to api-current.txt
* Address Shams' review comments
* Update Api Scanner to filter out CordaInternal attribute
* Update api-current.txt
* Remove superfluous brackets
* Add transaction to StartedMockNode
* More leaky transaction fixes
# Conflicts:
# .ci/api-current.txt
# node-api/src/test/kotlin/net/corda/nodeapi/internal/AttachmentsClassLoaderStaticContractTests.kt
# node-api/src/test/kotlin/net/corda/nodeapi/internal/AttachmentsClassLoaderTests.kt
# node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
# node/src/test/kotlin/net/corda/node/internal/cordapp/CordappProviderImplTests.kt
# testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/InternalMockNetwork.kt
# testing/test-utils/src/main/kotlin/net/corda/testing/internal/MockCordappConfigProvider.kt
# testing/test-utils/src/main/kotlin/net/corda/testing/internal/MockCordappProvider.kt
* Bump gradle plugins version
* One last internal exposure
* Update constants.properties
* Fix api-current
* Address mikes review comments
Minor tweaks to the invocation context code.
1) Un-deprecate FlowInitiator, move the deprecation to the field. This
eliminates large numbers of warnings and means developers are warned
only once in the place where they obtain one.
2) Add documentation for StateMachineInfo and create a type alias to give
it a better name in an ABI compatible way.
3) Improve markup on InvocationContext
4) Rename field from just "context" to "invocationContext" (Context is vague)
* wire up and enforce max transaction size
* fixup after rebase
moved network parameter from AbstractNode to NodeProperties
* removed TODO
* fix broken import
* address PR issues
* remove API breaking change
address PR issue
* added max transaction size to driver and mock network.
address PR issues
* fix failing test
* added TODO
* fix verifier test
* fix spring driver build error
(cherry picked from commit c8cf46c)
* CORDA-939 - Dont expose FlowStateMachine via public API (#2438)
* Create CordaInternal attribute for properties on public classes that are not part of the api and apply to FlowLogic.stateMachine
* Remove startFlow from public test api and replace with startFlowAndReturnFuture
* Update api-current with changed signature
* Change test used in documentation to use public test methods
* Remove the rest of the unneccessary usages of the startFlow test utility
* Remove extra whitespace
* Rename startFlowAndReturnFuture back to startFlow
* Update api
* The annotation doesn't appear unless its marked as on the actual getter and setter
* Updated docs and removed pointless attribute
* Deleted whitespace
# Conflicts:
# .ci/api-current.txt
# testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeTestUtils.kt
* Revert api-current to v1 api
* Adding missing line and missing annotations
* Made changes post review
* Minor text change
* Make notary service return the current time and the transaction time window
along with the TimeWindowInvalid error.
Deprecate TimeWindowChecker.
Add a static method for validating transaction time window to reduce code duplication.
* add foreign key names and move the participants mapping to the subclass so that the table name can be configured
* update api-current file
* fix compilation errors
* PR changes
* PR changes
With network parameters the CN is no longer needed to identify notaries. This frees it up to be used in the node's name alongside the other attributes.
Also, the identity generation logic has been simplified, removing the need to have magic string values for storing distributed identities in the keystore. Now there are just two alias prefixes: "identity" as it was previously, and "distributed-notary".
* Remove MockServices.stateMachineRecordedTransactionMapping which does nothing
* Inline StateLoaderImpl
* Remove unused MockServices
* MockServices well-known identities not needed in a place
* A few things don't need a full-blown ServiceHub
* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"
This reverts commit 7d1f7ab
* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"
This reverts commit 7d1f7ab
The evolution annotations are being added to core which is being flagged
as a breaking API change. Given these are part of the upcoming
introduction of AMQP they're not actually breaking anything we've not
enabled yet
* CORDA-351: force update dependencies and suppress vulnerabilities not affecting corda
* CORDA-351: force update dependencies and suppress vulnerabilities not affecting corda
* Standardisation of Public Keys in Schema entities. (#68)
* Standardisation in usage of Public Keys in Schema entities.
Use PK Hash where optimal, otherwise use ByteArray/LOB representation of PK.
* Redundant after rebase.
* Use .encoded and Crypto.decode<Public|Private>Key(bytes) instead of Corda serialization.
* Optimize DBPartyAndCertificate entity to store and query on ownerKeyHash.
* Updated API stability check for schema attribute change.
* Enhance the API Scanner plugin to monitor class annotations.
* Implement @DoNotImplement annotation, and apply it.
* Update API definition.
* Update API change detection to handle @DoNotImplement.
* Document the `@DoNotImplement` annotation.
* Ensure that contents of OpaqueBytes cannot be modified.
* Update documentation and restore the signature verification check.
* Update the API definition.
* KDoc fixes.
* Update the changelog for v1.1.