feat: remaining record content types to support #79

Closed
0xmuralik wants to merge 35 commits from murali/record-attributes into main
5 changed files with 2086 additions and 594 deletions
Showing only changes of commit b90bb05b3f - Show all commits

View File

@ -27,10 +27,10 @@ message ServiceProviderRecord {
message WebsiteRegistrationRecord {
string url = 1 [(gogoproto.moretags) = "json:\"url\" yaml:\"url\""];
map<string,string> repo_reference = 2
map<string,string> repo_reference = 2
[(gogoproto.moretags) = "json:\"repoReference\" yaml:\"repoReference\""];
Review

This was underspecified on my part, instead of a raw_multicodec field and a raw_binary field, all we need is a hash_reference field. And this reference will be a CID or multihash which uses the raw mutliformat prefix and references the binary as an IPLD object.

This was underspecified on my part, instead of a `raw_multicodec` field and a `raw_binary` field, all we need is a `hash_reference` field. And this reference will be a CID or multihash which uses the [raw mutliformat prefix](https://github.com/multiformats/multicodec/blob/master/table.csv#L40) and references the binary as an IPLD object.
Review

Let's rename this to JSPackage and add a string name=5; field

Let's rename this to `JSPackage` and add a `string name=5;` field
Review

This will reference a registered GitRepository record by CID/multihash

GitRepository also has a repo_reference field which will contain a qualitative/non-content-hash-reference e.g. a github or gitea web url.

It might be helpful to signal in the naming of the various reference fields which references are content-hash => content references vs one's that are not. E.g. hash_reference vs reference.

This will reference a registered `GitRepository` record by CID/multihash `GitRepository` also has a `repo_reference` field which will contain a qualitative/non-content-hash-reference e.g. a github or gitea web url. It might be helpful to signal in the naming of the various `reference` fields which references are content-hash => content references vs one's that are not. E.g. `hash_reference` vs `reference`.
Review

Note: hash_reference to a GitRepository IPLD object

Note: `hash_reference` to a `GitRepository` IPLD object
Review

Note: hash_reference to binary IPLD object

Note: `hash_reference` to binary IPLD object
Review

Note: hash_reference to a GitRepository IPLD object

Note: `hash_reference` to a `GitRepository` IPLD object
Review

Note: hash_reference to a ChainRegistrationRecord IPLD object

Note: `hash_reference` to a `ChainRegistrationRecord` IPLD object
Review

Note: hash_reference to a WASM IPLD object

Note: `hash_reference` to a WASM IPLD object
Review

Note: hash_reference to ServiceProviderRecord IPLD object

Note: `hash_reference` to `ServiceProviderRecord` IPLD object
Review

Note: hash_reference to WatcherRegistrationRecord IPLD object

Note: `hash_reference` to `WatcherRegistrationRecord` IPLD object
Review

Note: hash_reference to auction result IPLD object

Note: `hash_reference` to auction result IPLD object
Review

Note: hash_reference to JSPackage IPLD object

Note: `hash_reference` to `JSPackage` IPLD object
0xmuralik commented 2023-01-17 05:43:47 +00:00 (Migrated from github.com)
Review

There is also a npm_package_reference (CID) in this message. Should we go with renaming repo_reference with repo_hash_reference and npm_package_reference with js_package_hash_ref?

There is also a npm_package_reference (CID) in this message. Should we go with renaming repo_reference with repo_hash_reference and npm_package_reference with js_package_hash_ref?
Review

We can avoid adding hash to the field names and instead we should revert to using a / sub-mapping to denote CID/link

We can avoid adding `hash` to the field names and instead we should revert to using a `/` sub-mapping to denote CID/link
map<string,string> build_artifact_ref = 3 [(gogoproto.moretags) = "json:\"buildArtifactRef\" yaml:\"buildArtifactRef\""];
map<string,string> tls_cert_ref = 4 [(gogoproto.moretags) = "json:\"tlsCertRef\" yaml:\"tlsCertRef\""];
map<string,string> build_artifact_ref = 3 [(gogoproto.moretags) = "json:\"buildArtifactRef\" yaml:\"buildArtifactRef\""];
map<string,string> tls_cert_ref = 4 [(gogoproto.moretags) = "json:\"tlsCertRef\" yaml:\"tlsCertRef\""];
string type = 5 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""];
string version = 6 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""];
}
@ -44,36 +44,36 @@ message GitRepository{
}
message Binary{
map<string,string> hash_reference=1;
map<string,string> hash_reference=1;
string targeted_arch=2;
string runtime_version=3;
map<string,string> repo_reference=4;
map<string,string> repo_reference=4;
string version=5;
string type=6;
}
message DockerImage{
string image_id=1;
map<string,string> binary_reference=2;
map<string,string> repo_reference=3;
map<string,string> binary_reference=2;
map<string,string> repo_reference=3;
string version=4;
string type=5;
}
message WatcherRegistrationRecord{
WatcherMetadata metadata =1;
map<string,string> repo_reference=2;
map<string,string> repo_reference=2;
WASMBinary wasm=3;
string version=4;
string type=5;
message WatcherMetadata{
string version=1;
map<string,string> chain_reference=2;
map<string,string> chain_reference=2;
}
message WASMBinary{
map<string,string> hash_reference=1;
map<string,string> hash_reference=1;
WASMBinaryMetadata metadata=2;
}
@ -84,16 +84,16 @@ message WatcherRegistrationRecord{
}
message ResponderContract{
map<string,string> service_provider_ref=1;
map<string,string> auction_ref=2;
map<string,string> watcher_ref=3;
map<string,string> service_provider_ref=1;
map<string,string> auction_ref=2;
map<string,string> watcher_ref=3;
string version=4;
string type=5;
}
message JSPackage{
map<string,string> repo_reference=1;
map<string,string> js_package_ref=2;
map<string,string> repo_reference=1;
map<string,string> js_package_ref=2;
string version=3;
string type=4;
string name =5;
@ -106,5 +106,5 @@ message ChainRegistrationRecord{
string version=4;
string chain_id=5;
string network_id=6;
map<string,string> genesis_hash=7;
map<string,string> genesis_hash=7;
}

View File

@ -10,4 +10,4 @@ record:
chain_id: laconic_9000-1
network_id: "1392"
genesis_hash:
/: f6fbe71210275adc7c7ef585a72c065cdb85f0c8d13dea0f229fd7c22d445a26
/: QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9

View File

@ -110,7 +110,7 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() {
&registrytypes.QueryListRecordsRequest{
Attributes: []*registrytypes.QueryListRecordsRequest_KeyValueInput{
{
Key: "metadata---chain_reference---ref---",
Key: "metadata---chain_reference---/---",
Value: &registrytypes.QueryListRecordsRequest_ValueInput{
Type: "string",
String_: "QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9",

View File

@ -241,7 +241,7 @@ func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*type
resourceSignBytes, _ := record.GetSignBytes()
cid, err := record.GetCID()
if err != nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid record JSON")
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, fmt.Sprint("Invalid record JSON, err=", err))
}
record.ID = cid

File diff suppressed because it is too large Load Diff