From b481e4e1464adabd53c7f4851972152bca891cac Mon Sep 17 00:00:00 2001 From: skudasov Date: Wed, 8 Jul 2026 10:37:20 +0200 Subject: [PATCH 1/2] health info --- node-platform/chip-schemas.json | 4 +- node-platform/common/v1/node_build_info.pb.go | 161 --------------- node-platform/common/v1/node_info.pb.go | 187 ++++++++++++++++++ ...{node_build_info.proto => node_info.proto} | 7 +- node-platform/package.json | 5 + pnpm-workspace.yaml | 1 + 6 files changed, 201 insertions(+), 164 deletions(-) delete mode 100644 node-platform/common/v1/node_build_info.pb.go create mode 100644 node-platform/common/v1/node_info.pb.go rename node-platform/common/v1/{node_build_info.proto => node_info.proto} (66%) create mode 100644 node-platform/package.json diff --git a/node-platform/chip-schemas.json b/node-platform/chip-schemas.json index 8b0a0f20..547b5d80 100644 --- a/node-platform/chip-schemas.json +++ b/node-platform/chip-schemas.json @@ -6,8 +6,8 @@ "path": "common/v1/chain_plugin_config.proto" }, { - "entity": "common.v1.NodeBuildInfo", - "path": "common/v1/node_build_info.proto" + "entity": "common.v1.NodeInfo", + "path": "common/v1/node_info.proto" }, { "entity": "common.v1.NodeJobInfo", diff --git a/node-platform/common/v1/node_build_info.pb.go b/node-platform/common/v1/node_build_info.pb.go deleted file mode 100644 index d83e05af..00000000 --- a/node-platform/common/v1/node_build_info.pb.go +++ /dev/null @@ -1,161 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.6 -// protoc v5.29.3 -// source: node-platform/common/v1/node_build_info.proto - -package v1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type NodeBuildInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - CsaPublicKey string `protobuf:"bytes,1,opt,name=csa_public_key,json=csaPublicKey,proto3" json:"csa_public_key,omitempty"` - CommitSha string `protobuf:"bytes,2,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"` - VersionTag string `protobuf:"bytes,3,opt,name=version_tag,json=versionTag,proto3" json:"version_tag,omitempty"` - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` - DockerTag string `protobuf:"bytes,5,opt,name=docker_tag,json=dockerTag,proto3" json:"docker_tag,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *NodeBuildInfo) Reset() { - *x = NodeBuildInfo{} - mi := &file_node_platform_common_v1_node_build_info_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *NodeBuildInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NodeBuildInfo) ProtoMessage() {} - -func (x *NodeBuildInfo) ProtoReflect() protoreflect.Message { - mi := &file_node_platform_common_v1_node_build_info_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NodeBuildInfo.ProtoReflect.Descriptor instead. -func (*NodeBuildInfo) Descriptor() ([]byte, []int) { - return file_node_platform_common_v1_node_build_info_proto_rawDescGZIP(), []int{0} -} - -func (x *NodeBuildInfo) GetCsaPublicKey() string { - if x != nil { - return x.CsaPublicKey - } - return "" -} - -func (x *NodeBuildInfo) GetCommitSha() string { - if x != nil { - return x.CommitSha - } - return "" -} - -func (x *NodeBuildInfo) GetVersionTag() string { - if x != nil { - return x.VersionTag - } - return "" -} - -func (x *NodeBuildInfo) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *NodeBuildInfo) GetDockerTag() string { - if x != nil { - return x.DockerTag - } - return "" -} - -var File_node_platform_common_v1_node_build_info_proto protoreflect.FileDescriptor - -const file_node_platform_common_v1_node_build_info_proto_rawDesc = "" + - "\n" + - "-node-platform/common/v1/node_build_info.proto\x12\tcommon.v1\"\xae\x01\n" + - "\rNodeBuildInfo\x12$\n" + - "\x0ecsa_public_key\x18\x01 \x01(\tR\fcsaPublicKey\x12\x1d\n" + - "\n" + - "commit_sha\x18\x02 \x01(\tR\tcommitSha\x12\x1f\n" + - "\vversion_tag\x18\x03 \x01(\tR\n" + - "versionTag\x12\x18\n" + - "\aversion\x18\x04 \x01(\tR\aversion\x12\x1d\n" + - "\n" + - "docker_tag\x18\x05 \x01(\tR\tdockerTagBFZDgithub.com/smartcontractkit/chainlink-protos/node-platform/common/v1b\x06proto3" - -var ( - file_node_platform_common_v1_node_build_info_proto_rawDescOnce sync.Once - file_node_platform_common_v1_node_build_info_proto_rawDescData []byte -) - -func file_node_platform_common_v1_node_build_info_proto_rawDescGZIP() []byte { - file_node_platform_common_v1_node_build_info_proto_rawDescOnce.Do(func() { - file_node_platform_common_v1_node_build_info_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_build_info_proto_rawDesc), len(file_node_platform_common_v1_node_build_info_proto_rawDesc))) - }) - return file_node_platform_common_v1_node_build_info_proto_rawDescData -} - -var file_node_platform_common_v1_node_build_info_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_node_platform_common_v1_node_build_info_proto_goTypes = []any{ - (*NodeBuildInfo)(nil), // 0: common.v1.NodeBuildInfo -} -var file_node_platform_common_v1_node_build_info_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_node_platform_common_v1_node_build_info_proto_init() } -func file_node_platform_common_v1_node_build_info_proto_init() { - if File_node_platform_common_v1_node_build_info_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_build_info_proto_rawDesc), len(file_node_platform_common_v1_node_build_info_proto_rawDesc)), - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_node_platform_common_v1_node_build_info_proto_goTypes, - DependencyIndexes: file_node_platform_common_v1_node_build_info_proto_depIdxs, - MessageInfos: file_node_platform_common_v1_node_build_info_proto_msgTypes, - }.Build() - File_node_platform_common_v1_node_build_info_proto = out.File - file_node_platform_common_v1_node_build_info_proto_goTypes = nil - file_node_platform_common_v1_node_build_info_proto_depIdxs = nil -} diff --git a/node-platform/common/v1/node_info.pb.go b/node-platform/common/v1/node_info.pb.go new file mode 100644 index 00000000..8603bece --- /dev/null +++ b/node-platform/common/v1/node_info.pb.go @@ -0,0 +1,187 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v5.29.3 +// source: node-platform/common/v1/node_info.proto + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type NodeInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + // key info + CsaPublicKey string `protobuf:"bytes,1,opt,name=csa_public_key,json=csaPublicKey,proto3" json:"csa_public_key,omitempty"` + // build info + CommitSha string `protobuf:"bytes,2,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"` + VersionTag string `protobuf:"bytes,3,opt,name=version_tag,json=versionTag,proto3" json:"version_tag,omitempty"` + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + DockerTag string `protobuf:"bytes,5,opt,name=docker_tag,json=dockerTag,proto3" json:"docker_tag,omitempty"` + // health metrics + Healthy bool `protobuf:"varint,6,opt,name=healthy,proto3" json:"healthy,omitempty"` + HealthErrors map[string]string `protobuf:"bytes,7,rep,name=health_errors,json=healthErrors,proto3" json:"health_errors,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NodeInfo) Reset() { + *x = NodeInfo{} + mi := &file_node_platform_common_v1_node_info_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NodeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo) ProtoMessage() {} + +func (x *NodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_node_platform_common_v1_node_info_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo) Descriptor() ([]byte, []int) { + return file_node_platform_common_v1_node_info_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeInfo) GetCsaPublicKey() string { + if x != nil { + return x.CsaPublicKey + } + return "" +} + +func (x *NodeInfo) GetCommitSha() string { + if x != nil { + return x.CommitSha + } + return "" +} + +func (x *NodeInfo) GetVersionTag() string { + if x != nil { + return x.VersionTag + } + return "" +} + +func (x *NodeInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *NodeInfo) GetDockerTag() string { + if x != nil { + return x.DockerTag + } + return "" +} + +func (x *NodeInfo) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *NodeInfo) GetHealthErrors() map[string]string { + if x != nil { + return x.HealthErrors + } + return nil +} + +var File_node_platform_common_v1_node_info_proto protoreflect.FileDescriptor + +const file_node_platform_common_v1_node_info_proto_rawDesc = "" + + "\n" + + "'node-platform/common/v1/node_info.proto\x12\tcommon.v1\"\xd0\x02\n" + + "\bNodeInfo\x12$\n" + + "\x0ecsa_public_key\x18\x01 \x01(\tR\fcsaPublicKey\x12\x1d\n" + + "\n" + + "commit_sha\x18\x02 \x01(\tR\tcommitSha\x12\x1f\n" + + "\vversion_tag\x18\x03 \x01(\tR\n" + + "versionTag\x12\x18\n" + + "\aversion\x18\x04 \x01(\tR\aversion\x12\x1d\n" + + "\n" + + "docker_tag\x18\x05 \x01(\tR\tdockerTag\x12\x18\n" + + "\ahealthy\x18\x06 \x01(\bR\ahealthy\x12J\n" + + "\rhealth_errors\x18\a \x03(\v2%.common.v1.NodeInfo.HealthErrorsEntryR\fhealthErrors\x1a?\n" + + "\x11HealthErrorsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01BFZDgithub.com/smartcontractkit/chainlink-protos/node-platform/common/v1b\x06proto3" + +var ( + file_node_platform_common_v1_node_info_proto_rawDescOnce sync.Once + file_node_platform_common_v1_node_info_proto_rawDescData []byte +) + +func file_node_platform_common_v1_node_info_proto_rawDescGZIP() []byte { + file_node_platform_common_v1_node_info_proto_rawDescOnce.Do(func() { + file_node_platform_common_v1_node_info_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_info_proto_rawDesc), len(file_node_platform_common_v1_node_info_proto_rawDesc))) + }) + return file_node_platform_common_v1_node_info_proto_rawDescData +} + +var file_node_platform_common_v1_node_info_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_node_platform_common_v1_node_info_proto_goTypes = []any{ + (*NodeInfo)(nil), // 0: common.v1.NodeInfo + nil, // 1: common.v1.NodeInfo.HealthErrorsEntry +} +var file_node_platform_common_v1_node_info_proto_depIdxs = []int32{ + 1, // 0: common.v1.NodeInfo.health_errors:type_name -> common.v1.NodeInfo.HealthErrorsEntry + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_node_platform_common_v1_node_info_proto_init() } +func file_node_platform_common_v1_node_info_proto_init() { + if File_node_platform_common_v1_node_info_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_info_proto_rawDesc), len(file_node_platform_common_v1_node_info_proto_rawDesc)), + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_node_platform_common_v1_node_info_proto_goTypes, + DependencyIndexes: file_node_platform_common_v1_node_info_proto_depIdxs, + MessageInfos: file_node_platform_common_v1_node_info_proto_msgTypes, + }.Build() + File_node_platform_common_v1_node_info_proto = out.File + file_node_platform_common_v1_node_info_proto_goTypes = nil + file_node_platform_common_v1_node_info_proto_depIdxs = nil +} diff --git a/node-platform/common/v1/node_build_info.proto b/node-platform/common/v1/node_info.proto similarity index 66% rename from node-platform/common/v1/node_build_info.proto rename to node-platform/common/v1/node_info.proto index 9152da26..bee4b615 100644 --- a/node-platform/common/v1/node_build_info.proto +++ b/node-platform/common/v1/node_info.proto @@ -4,10 +4,15 @@ package common.v1; option go_package = "github.com/smartcontractkit/chainlink-protos/node-platform/common/v1"; -message NodeBuildInfo { +message NodeInfo { + // key info string csa_public_key = 1; + // build info string commit_sha = 2; string version_tag = 3; string version = 4; string docker_tag = 5; + // health metrics + bool healthy = 6; + map health_errors = 7; } diff --git a/node-platform/package.json b/node-platform/package.json new file mode 100644 index 00000000..6b117346 --- /dev/null +++ b/node-platform/package.json @@ -0,0 +1,5 @@ +{ + "name": "@chainlink/node-platform", + "version": "0.1.0", + "private": true +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index bb3c448a..7b5d52b0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,6 +6,7 @@ packages: - 'storage-service' - 'op-catalog' - 'rane' + - 'node-platform' - 'chainlink-ccv/verifier' - 'chainlink-ccv/committee-verifier' - 'chainlink-ccv/message-discovery' From 814901799964889742a710df68b5404acccad82e Mon Sep 17 00:00:00 2001 From: skudasov Date: Wed, 8 Jul 2026 12:11:02 +0200 Subject: [PATCH 2/2] changeset --- .changeset/olive-donkeys-follow.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/olive-donkeys-follow.md diff --git a/.changeset/olive-donkeys-follow.md b/.changeset/olive-donkeys-follow.md new file mode 100644 index 00000000..36b805ee --- /dev/null +++ b/.changeset/olive-donkeys-follow.md @@ -0,0 +1,5 @@ +--- +"@chainlink/node-platform": major +--- + +change NodeBuildInfo to NodeInfo, include health info