How to reset the attachments store? - corda

I replaced a signed contracts.jar on my production node with another signed contracts.jar containing 1 additional contract and states.
Now I get the following error:
Failed net.corda.core.transactions.MissingContractAttachments: Cannot find contract attachments for com.cordacodeclub.contracts.LockableTokenContractnull. See https://docs.corda.net/api-contract-constraints.html#debugging
You can see it live by going to http://54.216.255.188:8080 and pressing "Reset". The LockableTokenContract mentioned in the error message is an old contract that was present in the previous signed jar.
I am ok to lose all the production data as this is still a test arrangement. So I hid the persistence.mv.db and persistence.trace.db, to no avail.
So my question is how can I start afresh by:
resetting my vault and the attachment store
keeping my testnet certificates
EDIT:
Here is the start log of the node:
Sep 27 18:48:17 ip-172-31-6-121 corda[86960]: --- Corda Open Source 4.4 (21e8c4f) -------------------------------------------------------------
Sep 27 18:48:17 ip-172-31-6-121 corda[86960]: Logs can be found in : /opt/corda/logs
Sep 27 18:48:34 ip-172-31-6-121 corda[86960]: Advertised P2P messaging addresses : 54.216.255.188:10002
Sep 27 18:48:34 ip-172-31-6-121 corda[86960]: RPC connection address : 0.0.0.0:10003
Sep 27 18:48:34 ip-172-31-6-121 corda[86960]: RPC admin connection address : 0.0.0.0:10004
`Sep 27 18:48:41 ip-172-31-6-121 corda[86960]: Loaded 12 CorDapp(s) : CorDapp corda-updates-core version 1.0 by com.r3 with licence Unknown, Workflow CorDapp: Slot Machine Flows version 1 by vendor Corda Code Club with licence Apache License, Version 2.0, Workflow CorDapp: Confidential Identities Workflows version 1 by vendor Corda Open Source with licence Apache License, Version 2.0, CorDapp bn-onboarder-app version 2.0 by net.corda.businessnetworks with licence Unknown, CorDapp corda-updates-app-states version 1.0 by com.r3 with licence Unknown, CorDapp business-network-membership-service-states version 1.0 by com.r3 with licence Unknown, Contract CorDapp: Accounts SDK - States and Contracts version 1 by vendor R3 with licence Apache 2, CorDapp corda-updates-transport version 1.0 by com.r3 with licence Unknown, Contract CorDapp: Slot Machine contracts version 1 by vendor Corda Code Club with licence Apache License, Version 2.0, CorDapp business-network-membership-service version 1.0 by com.r3 with licence Unknown, Contract CorDapp: Accounts - Flows version 1 by vendor R3 with licence Apache 2, CorDapp corda-updates-app version 1.0 by com.r3 with licence Unknown
Sep 27 18:48:41 ip-172-31-6-121 corda[86960]: Node for "TESTNET_B9lab" started up and registered in 25.45 sec
Sep 27 18:48:41 ip-172-31-6-121 corda[86960]: SSH server listening on port : 2222
Sep 27 18:48:41 ip-172-31-6-121 corda[86960]: Running P2PMessaging loop

Big oof! I had different versions of contracts.jar on my 2 nodes. Both signed apparently...
Putting the same one on both ends solved it for me.

Related

How to check the NebulaGraph Database version?

As title, I want to know the NebulaGraph Database version.
I use nebula-console here.
[root]# ./nebula-console -addr 192.168.8.136 -port 9669 -u root -p nebula
Welcome to Nebula Graph!
(root#nebula) [(none)]> use basketballplayer
Execution succeeded (time spent 2206/2702 us)
Mon, 12 Dec 2022 06:09:16 UTC
As NebulaGraph is distributed, thus there is technically no version for the "database" but for each component, we could use SHOW HOSTS <type_of_the_process> to get this info since 2.x from the client side:
SHOW HOSTS STORAGE
SHOW HOSTS GRAPH
SHOW HOSTS META
SHOW HOSTS AGENT
There will be a version column of the output then.
Of course, from the server side, the binary itself supports checking the version like this:
/usr/local/nebula/bin/nebula-graphd --version
nebula-graphd version 2022.03.30-nightly, Git: 1e68162, Build Time: Mar 31 2022 02:31:25
This source code is licensed under Apache 2.0 License.

MXChip IoT DevKit Upload Failed

I'm getting an error when I try to upload a sketch to the MXChip IoT Devkit:
GNU ARM Eclipse 32-bits Open On-Chip Debugger 0.10.0-00114-g8419536 (2017-04-18-22:14)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
hla_swd
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND
Error: open failed
in procedure 'program'
in procedure 'init' called at file "embedded:startup.tcl", line 495
in procedure 'ocd_bouncer'
** OpenOCD init failed **
shutdown command invoked
I have tried different USB ports, different USB cables, and uploading with both the Arduino IDE and VS Code. I'm using the standalone version of the Arduino IDE, not the MS store version. I'm using Windows 10.
Here is the version info that the board reports in configuration mode:
# version
DevKitSDK version: 2.0.0
Mico version: 31620002.049
mbed-os version: 5.4.3
mbed TLS version: 2.15.0
WIFI version: wl0: Sep 10 2014 11:28:46 version 5.90.230.10

BouncyCastle ALPN broken when running with JDK 11 code compiled with JDK 8

I setup my jdk provider by
Security.addProvider(new BouncyCastleFipsProvider()).
Set it in the Grpc client by:
SslContextBuilder sslContextBuilder = SslContextBuilder.forClient()
.sslProvider(SslProvider.JDK)
.applicationProtocolConfig(new ApplicationProtocolConfig(
ApplicationProtocolConfig.Protocol.ALPN,
ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
Collections.singletonList("h2")));
When trying to establish the connection, After successful ssl handshake I get:
UNAVAILABLE: Failed ALPN negotiation: Unable to find compatible protocol
Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0]
I'm using grpc 1.44 version + bc-fips.jar 1.0.2 version.
Running my app by java 11.0.15 compiled by jdk1.8.0_291.jdk.
It looks like BouncyCastleFipsProvider, by its SSLParamertesUtil class, somehow remove the "h2" from the suggested application protocols list.
increasing grpc version to 1.46 didn't help.
Any suggestions please?
Thanks.

PFSense DHCP Server doesn't work with RHEL 6 machines

I have a DHCP Server working on PFSense 2.4.4. While it works perfectly with RHEL 7/CentOS 7 machines, it doesn't work on RHEL6/CentOS 6 (both with fixed IP or dynamic range).
This is what DHCP Server Logs show (IP and MAC are obfuscated):
DHCPREQUEST for xxx.xx.255.15 from aa:bb:cc:dd:ee:ff via bge0
DHCPACK on xxx.xx.255.15 to aa:bb:cc:dd:ee:ff via bge0
send_packet: Host is down
dhcp.c:3976: Failed to send 318 byte long packet over fallback interface.
Here is what service network restart shows in CentOS 6:
Restarting network service
And here is what /var/log/messages shows (xxx.xxx.255.3 is the Pfsense DHCP Server address; xxx.xxx.255.1 is the default route; xxx.xxx.255.15 is the supposed address that should be bound to the machine):
Messages file
Lastly, here is my PFSense server info if it helps:
BIOS Vendor: Dell Inc.
Version: 2.6.0
Release Date: Tue Oct 31 2017
Version 2.4.4-RELEASE (amd64)
built on Thu Sep 20 09:03:12 EDT 2018
FreeBSD 11.2-RELEASE-p3
CPU Type Intel(R) Xeon(R) CPU E5-2620 v3 # 2.40GHz
24 CPUs: 2 package(s) x 6 core(s) x 2 hardware threads
AES-NI CPU Crypto: Yes (inactive)
I've tried rebooting those Centos 6 machines, rebooting PFSense, and I made sure the machines and PFSense packages are all updated. Nothing works.
Any help is appreciated.
After struggling with this I found this in DHCP Server option in PfSense:
Additional BOOTP/DHCP Options
I configured it like this:
Additional config
Turns out DHCP wasn't providing the Subnet Mask to CentOS 6 instances and with this option enabled, the mask is appended to the lease file.

Corda V3 Network Permissioning self issuance of node certificates

Hi I have been trying non-dev mode to start up the nodes for corda V3.
Currently after starting the node, during restart I am experiencing an error of: java.security.cert.CertPathValidatorException: The issuing certificate for C=UK, L=London, O=NetworkMapAndNotary has role NETWORK_MAP, expected one of [INTERMEDIATE_CA, NODE_CA]
the roles that I followed is provided in this link: https://docs.corda.net/head/permissioning.html#certificate-role-extension
obtained from OID Corda Role (1.3.6.1.4.1.50530.1.1)
Any pointers for this issue?
When i followed Devmode and assign my NetworkMapAndNotary to (Role 4) it fails to startup with the error: java.lang.IllegalArgumentException: Incorrect cert role: NODE_CA at net.corda.nodeapi.internal.network.NetworkMapKt.verifiedNetworkMapCert(NetworkMap.kt:48) ~[corda-node-api-corda-3.0.jar:?]
on a side note: i tried to follow devmode cert creation and noticed that the devmode (NetworkMapAndNotary) cert is tagged under a node ( role 4 ) why is that so..
Certificate[2]:
Owner: O=NetworkMapAndNotary, L=London, C=UK
Issuer: C=UK, L=London, OU=corda, O=R3, CN=Corda Node Intermediate CA
Serial number: 39551bff61207fb6
Valid from: Mon Mar 26 07:00:00 ICT 2018 until: Thu May 20 07:00:00 ICT 2027
Certificate fingerprints:
MD5: D1:8C:4D:83:F2:A7:F4:DA:60:05:E3:69:2C:30:FF:20
SHA1: E5:4D:01:A5:68:01:73:59:8B:7A:3D:0B:28:4E:35:C4:CD:DE:C7:52
SHA256: 3F:D6:24:E5:C8:9F:BE:EE:D4:99:D7:2C:85:50:F0:A8:26:46:84:D7:FB:3A:42:54:F2:12:64:51:48:58:FD:CF
Signature algorithm name: SHA256withECDSA
Version: 3
Extensions:
#1: ObjectId: 1.3.6.1.4.1.50530.1.1 Criticality=false
0000: 02 01 04
I resolved it by assigning two different certificates by following this diagram: https://docs.corda.net/_images/certificate_structure.png
Basically I need to create two certs instead of one.
self sign certificate for network map ( network map role )
another signed certificate for nodeca ( node role )
An issue here was because of Corda's tool networkBootStrapper.kt file comes with a hard code function inside the function of: installNetworkParameters where it will always call: createDevNetworkMapCa() function to generate a dev key pair regardless if I am in dev-mode or not.
Customize the file to use the self-signed certificate for network map adding on the role-extension. so the node certificate still remains but the network Map will be a one-time used key just to generate the network-parameters file for each nodes, the node role will always be used for node startup.
It was failing restart because it was seeing that there was a networkmap role certificate acting as another node role in the network.
The Network Map has been redesigned in Corda V3. Take a look at the following blog post and the docs here
Try removing the Network Map identity

Resources