Submind YouTube summaries
Thumbnail for Hiero SDK Community Call - 2026/09/07

Hiero SDK Community Call - 2026/09/07

Watch on YouTube

Video summary

The primary focus of this community call was the development and implementation of a new Test Compatibility Kit (TCK) action runner designed to streamline the verification process for the Hiero SDKs. Previously, contributors were required to manually run TCK tests on their local machines, which often necessitated running a local node and utilizing high-performance computers, creating significant barriers for testing compatibility across different environments. The team introduced a Docker-based solution that automates this process by pulling the necessary TCK repository and executing specific compatibility checks against the JSON-RPC server. This tool allows reviewers to verify within a Pull Request whether newly implemented methods strictly adhere to the official TCK specifications, ensuring that both unit tests and full compatibility suites pass before code is merged. During the presentation, the team demonstrated how the new runner generates detailed reports that categorize test results into passing, pending, or failing states based on specific services like file creation or token transfers. The system can be configured to run either a full suite of tests or targeted checks for individual services, with the entire process taking approximately 15 minutes once the local node is prepared. This automation addresses a critical gap in the continuous integration pipeline, as previous workflows lacked automated CI actions specifically for TCK verification. By shifting this responsibility to the action runner, the team ensures that documentation and code implementations are rigorously validated against the latest specs without relying on manual intervention or specific hardware capabilities. The meeting also addressed urgent matters regarding the deprecation of the account balance query method, which is scheduled to be removed from several SDKs by September 9th. While the Java SDK had already implemented the necessary changes, other languages like JavaScript and Python were still finalizing their updates. The team coordinated efforts to create corresponding issues in Swift, C++, Rust, and other SDK repositories to ensure a synchronized transition away from the deprecated method. Additionally, the discussion covered progress on the website redesign, with plans to merge remaining PRs for the home page and issue pages by the end of the week, leaving only the blog page for the following week. The team concluded by noting their excellent security posture, highlighted by an "excellent" health score on the LFX Insights platform and no known vulnerabilities, before confirming that the new TCK runner would soon be presented as a full project to the Technical Steering Committee.
Read the full video transcript
Hello everybody. >> Hi Henry, how are you? >> You are called unknown unknown Angie. Is that by purpose? >> No, it's it's a glitch with Zoom. I can I think I can fix it. Hold on. >> Ah. I I see your picture so I know who you are but the name is unknown unknown. >> Yeah, I don't really know why it does that. It just kind of shows up that way. >> What did you say? >> Midge I ate the beans I ordered here. >> Hello everyone. >> Hey, hey. >> Okay. Looks like nobody else is joining. Who's this? Joshua's note taker. Anybody knows that? >> No. And I found it here. >> Okay. So, anybody has topics for the SDK meeting? >> Uh I have one, but I was waiting to see Manish if he's joining so cuz it's me and and him who are working on on it. >> Okay. Do you do you know if he will join? >> That's what I'm trying to find out. >> Okay. >> Uh Let me see. >> I think he's not joining cuz he's not drawing like >> Okay. >> Yeah, so >> Yeah, I think it's already very late for him, right? >> Let me see. I So, uh well, what I wanted to talk about is that we are implementing TCK TCK tests, uh for example, more effectively in the Python SDK. But, we found out an issue that, for example, some contributors come in, they would want to take that, but for you to test out something that it is working, you might need a computer with high compute, and uh cuz you have to run the have to have a local node running. Uh >> [clears throat] >> just another piece of So, that takes if you don't if you have like a computer which is not good, then you won't be able to test all those stuffs. So, me and Manish worked on like a TCK action runner. So, we were we in the background working on its compatibility with other SDKs, for example, tested it with Java and Python, so now I want to test it with other SDKs. >> What is this exactly? Um So, can you explain a bit more concrete on what it is? >> And uh TCK come like a compatibility TCK test runner. >> Wait, what Yeah, what does a test test runner mean? Like like um >> Like for example, if someone is implementing a TCK method, I just want to run a PC method for example. Uh That runner helps uh ask them them the reviewers or if there is a reviewer to see whether they they that method implemented is okay and all the uh and all the tests behind it are uh are passing in the PR in the exact PR. So it's like as you see the E2 the E2E tests in the what? In the SDK. >> Can you show that? Because >> Yeah. >> Show us like Would that be possible? >> Yeah, let me show it to you. And so can you see my screen? >> Yep. >> Yeah, so this is a test a test that as you see it is in my fork. So it it is a test file that I wrote using the TCK runner that we were building as you see here. So it runs the the TCK the JSON RPC. Uh on on the SDK using this Dockerfile. So it runs that. Then after it runs the TCK. Oh, where is it? So it runs the it pulls that TCK repo and it runs the exact compatibility file to test that TCK method or you can run the full test suit to see whether all file all the methods uh are fine or they are passing or to see even the methods which are not implemented in the SDK. And uh let me show you here. Let me For example, here I ran like service per service. For example, uh I can come to the contract file. I will use that to the solo action to >> Mhm. >> prepare the the solo. Then uh we do the This is Yeah. So, now this runs the what? The TCK against the uh This runs the the test file against the JSON RPC server on the solo network. >> Mhm. How was it done in the past like to do TCK tests? >> You run it locally. >> There was no CI for TCK? >> Yeah. >> Really? >> In the SDKs, it is not there. >> Oh, I had no idea. I never checked that. There are so many, you know, like GitHub action files and and I never checked that and and this is I I cannot believe that. Give me a second. I I now need need to check that. That would be >> Yeah, cuz what we have, we have the E2E tests. Uh those are there and uh unit tests, but for for the actions, those are there, but for the TCK, those those are those uh the CI is not there. The CI action is not there for that. So, you have to run them manually on your machine to see whether your what the TCK method you have implemented is working. So, in the PL, you don't you don't have anything to see whether it worked or what, so that's why we come out with this. >> But, there was this um One second. I'll share a link with you. Um or or I can >> I can share? >> I'll share. Close up. Um So, if you look at that one. I'm now in the Hyvä SDK Java, where's the build.gradle, which has this section about unit and integration tests. >> Yeah. >> And I was assuming, since this setup is solo and and everything, that this is executing the um TCK tests. So, this is not not doing the TCK tests. Oh, here. TCK test. >> Okay. >> Build TCK, one TCK unit tests. >> Those are unit tests for TCK. But, they are compatibility tests. For example, let me show you here. Uh the like uh I can't share. Let me share. >> Yep. >> So, yeah. Let me Where it? Um >> Can you see my screen? >> Yes. >> Check here. For example, here we have tests where we have that TCK. >> Mhm. >> Unit tests there are there, but we have also uh We have also this you run the JSON-RPC server where you have to test it by using the TCK this TCK repository, is it? >> But that would mean I mean if I now go to the TCK tests are all defined within the TCK one, right? >> Yep. >> This contains the JSON-RPC server and and this is >> Can you hear me? >> I I can hear you. Yeah, yeah, yeah, yeah, yeah. Um I'm still like cannot cannot believe that. So, when I go now into any pull request and say seeing Let me check one where the build has been executed. Like any pull request, let's go to a closed one, maybe one that was merged in the near past, like 5 days ago there was one merged. And um when I look at poo, I don't see for poo for merged poo requests the checks anymore. Can that be? Hm. Um Okay, here I have one where TCK tests passed. So both TCK one TCK unit tests and you say that is something else. >> [snorts] >> That just runs the unit tests within the TCK project. Is Is that what you're saying? >> The The like the unit tests for the TCK they run they they like for example if there is an implementation for the TCK, you run for the TCK method, you have to give it our unit test for it. You have to write unit tests for it. Yeah, but what we don't check in the PR is that method that you have implemented, is it compatible with the TCK specs in the TCK repo? So for that for that to run it, you have to like even if you are implementing it, you have to for the verification because we had a meeting with Rob. For the verification, you have to run you have first of all you have to have the JSON RPC server. So, that's why we set it up. Also in the Python SDK, we set it up. Have it you have to have it running. Then you have to have the local node running. After then, you you test you use the TCK SDK to run the specs along along to run the specs along against the JSON RPCs against the JSON RPC server. So, that's what we are That's what That's why we wrote this. Cuz we we searched for that because when you're reviewing, you have to know that those if the method is implemented, you have to know that the specs are also passing along along with our with the TCK repo. >> Yeah. But when I go to TCK, where is it not? TCK >> There. >> So, when I go to to this one, right? And then let me check >> [clears throat] >> somewhere No, somewhere we have those tests and let's go Let's go to file service and let's say file create transaction. So, here we have a test that says, "Hey, is file create transaction or multiple tests, right? Is file create transaction supported?" And um if I understand you correctly, you're now saying like in the CI of the Java or JavaScript SDK, those tests are not executed at all when I look at a pull request, the tests I see under this one or under this one is something totally different. Because those are the tests that test the TCK implementation for that language, like the driver, and not um all those specifications. Is it like that? >> Yeah. >> Crazy. Okay. >> You're right. Because um yeah, to add on what you are saying, because those though like those uh those TCK unit tests which are running in the like in the Java, they are best when they are best to see that you have the coverage for the TCK code that you've written. But to to know that I have the specs that I've written, they are right and uh they are being tested by the spec, you have to run the what? The TCK. You have to run the the compatibility test. >> Yeah. >> Using that using that file, because when when when you run that you you run that file against the what? The JSON R P server you've set. >> Mhm. Mhm. >> Yeah. So So when you run it and >> But for the one you now had, all those tests like the one we currently see on screen is executed now. >> The which one? >> The one on screen I'm sharing. >> That one. >> That one is executed for Python as an example. >> Yeah. Yeah. That one. For that one, you That's That's how even we have been like First of all, we first check if if someone writes a method, yes, it's fine, but we first check is it passing through that because at times even the documentation of the by the even the documentation of that is you got times they they they are they vary according to the specs. So we have to run them up to the spec and see whether they pass and sometimes they don't and someone has to to rewrite them those things. So that's why we we we thought that it would be better to have it in the like in the in the action runners so that we can they can we can see in the PR that this one is fine and when we run the the the test all those TCK tests along to the JSON RPC server in the SDK they they pass. >> Yep. >> Yeah, so >> Um that is interesting. Can you can you show like how the result looks like? Do we then see each and every test? Or >> Yeah, yeah, I'm going to let me let me show you here. For example uh Let me share. Yeah. Can you see my screen? >> Yeah. >> So so for example >> What are those categories? Like where are those categories? >> this category is they are those those services that you see that you saw for example in your opening the Let me let me >> Ah, okay. So you have not all services already implemented just some of them. Okay. >> Yeah, so you know it's like this that one I that one I you can run the full suit the full test TCK suit. But that one I opened it just to see whether I can run one like for example the file service, the token service only. The so >> But where where was the A and B? Where is that coming from? Like token A token B because like where do I see that? Where is that configured? >> These ones are they are here. They are Let me show you. They are Let me Um these ones I just configured them here as you can see. >> Oh, this is an source test token service test token service minus A. Okay, token service and then test Okay, understood everything. So this is like air drop air drop air drop associated. >> Yeah, yeah, yeah. All it runs everything >> Understood. Understood. Okay, you configure it like that because maybe you say like I don't want to run all I I only want to run some of them. >> Yeah, so here you can see you can run the full what? The full CI. >> Yeah. >> Yeah, so uh and here I would like I would like to show you where um Now this is these are the results. >> Nice. >> Yeah, so it it gives you everything that these ones are not existing. You see? Like these ones are I uh are pending. You see? And uh where is this not passing? >> coming from. >> For example, they are not implement like uh those methods are not implemented in the in the in that SDK. >> Uh in in the Python SDK. >> Yeah, those those TCK >> cannot run a test because that is missing in the Python SDK. >> Yeah. And this pending may may show you that you you have them, but you haven't uh for example, which one is this? Aha, that you have them in the in the SDK, but you haven't created the method. >> Mhm. >> Yeah. So now this one shows you that this one is created and it is passing. >> Yeah, okay. >> Yeah, so so that's how that's how that's how the the report is. And as you can see, these ones are passing. This one is fully implemented. >> Mhm. >> Yeah, so so for example, the reason I was writing for example, someone can say that I want to create a method of account update transaction in the in the what in the TCK in the RPC. So the in the JSON RPC, so he writes all these what? These tests these test specs and to see that they are that the SDK is in in line with the TCK specs, they should pass. Mhm. And when something fails, it means that the TCK suit that you've written has something missing. So and it will show you that this one is not right, so you will go back and rewrite it. So that's why we run them to implement perfect TCK TCK tests. >> Interesting. >> Yeah. >> That's really interesting. How How long is the one taking? Like a full one, like this full test? >> Uh >> Uh a full test a full test suit uh a full test suit uh it can take like like a suit only can take 10 minutes. >> Mhm. >> But if you have that you have to prepare the solo what and what so it's like a minimum of 16 minutes. >> Okay, but that is for all the tests. >> Yeah, for all the test. >> Yeah. So that is totally doable. I mean you need to wait like 15 minutes before you can merge your PR but then you know that um that the um TCK spec is completely fulfilled. >> Yeah, that is right. >> Yeah. >> Uh >> So and um how you have created it how much of it is um generic so that it can be used by each and every SDK? >> Um for the current what we are what we have now we have tested it for the Java and for the Python. So when there are some specs that there are some functionalities that we are fixing but when they are done then we shall go and test it to every what and putting the the specs for the for each and every SDK. So now when it is done then we shall say that this the that the for example the Swift SDK can use it and the C++ yeah. >> Can you can you show that like the um part that is re- re-usable? >> Let me show you here where it is. Um Uh so uh this is what we have. Uh So, what we have What we have as you see the Docker files, we have all of them for the Python and the Java. So, when I come to the Python, it will show me that it it will set up the what? The JSON RPC server for the what? For the Python SDK. So, this is what we only need for the SDK. So, when we have the this JSON RPC server running, then the rest are uh configurable to each and every SDK. Just we just have to write the the the Docker file to run the JSON RPC server of a specific what? SDK. When it is done, all specs are the same. >> Mhm. Um So, in general, this is like And if you go one back, one folder up, there was a generic um >> [snorts] >> action. >> This one, yeah? >> Yeah. >> Yeah, this one. That's what we are still working on. And also how we present the the what? The report. I had something here. Let me show you. Uh for example, where is it? Where is it? Um I had something here. Let me see. Is it No, it's not. Is it this? No. Yeah. Ah, now I remember. I have it on my local machine. Um where is it? Where is it? I'm done with this. Yeah. So now This is this kind of like generic HTML file that can be rendered to you everything that this one is pending this everything so That can be optional you can like an SDK can work it another one can not so you just also adding that to see. But you can see. Shows you the full report of that specific what? Specific method. >> Mhm. Why why is it not under highway hackers? >> Uh we are going to take it there. It was our next step after this PR is merged. >> Okay, perfect. Good. So for next week we will have it on on highway hackers and then on next week no maybe in two weeks so which will be because I assume next week maybe there is not even a TSC but in two weeks so on the 22nd um you will present that to the TSC. >> Okay, may I have my niche? >> Yeah yeah yeah yeah yeah yeah. >> Okay. >> So we should bring it to to highway hackers and and bring it in like two or three SDKs. This is awesome. >> Yeah. >> And and when have you talked with Rob about that? >> Uh Rob is like I've taken like Rob is not responsive but the the last time we talked if he was introducing this and by then he was teaching us how to run them against the SDKs. So after that well, he I think he switched priorities. So, >> Yeah, yeah. Yeah, yeah. Okay, but like when you say like was it a month ago, 3 months ago? >> It was in May. >> Okay. Yeah. Okay. So, in May, you looked at it and and now, yeah, okay, interesting. [clears throat] Yeah, good to know. >> Yeah, cuz cuz that's how we have been reviewing cuz you you like when you see like someone is implementing a method uh to in order to run those, uh you have to pull that branch, you run it on your local machine, and you run you you you fire up that solo. You run those DC get tests on your what? On your local machine to see whether they are passing. So, that's that that flow it couldn't be like very okay to the to the maintainers or reviewers. >> That's cool. >> Yeah. >> Absolutely. So, Yeah, continue it. We should bring that that to I want to have that as a a Hiway project. Um as a proposal to not even be in Hiway Hackers, but to be a full Hiway project. >> Okay. Yeah, we're going We're going to see how to perfect like We're going to see just to to remove there are some issues that we have been facing because uh the first run the the first time we had to go through the documentation, so it ran like for 40 minutes. >> [laughter] >> So, after Yeah, so after we fixed some stuff, now it runs for 15 minutes. So, we are fixing some other stuff. So, when once they are done then once that once this PR is merged we are going to I'm going I'm going to talk to Jessica so that we put it to the higher hackers. After that then we shall we shall be good to go. >> Yep, perfect. >> Yeah. >> Cool. >> And another thing I think the webs the the web redesign we shall have the 70% covered at the end of this week. >> Excuse me, about what? >> The website redesign. >> Oh. >> Yeah. >> That is cool. I mean, this is not part of of this meeting but we extended the time anyway of this meeting already. Um oh no, this is a 45-minute meeting. >> Yeah, it's there. >> What So when you say like that, what does that mean? Um >> Uh it means that uh for example our home page there is a PR for PR for the home page and when it is merged I think the full the full the full home page will be done. And uh Angie is working and also she has a PR for the issue issue what? Issue page. And once it's that is merged we we shall we shall that will be also done. Uh what is like remaining there is the TSC but the TSC is fine just we have a binary design and some color some color effects that we want to change there. And also there will be only one thing remaining. That will be the blog page. So that will be the the work for next week. >> Cool. >> Yeah. So after next week I think we shall be like fully done to present it. >> Sounds good. I like it. We like that. That's cool. >> Yeah. I know about the SDKs at least now we are doing well with uh with uh OpenSSF scorecard. Just one thing that I want to put that I would would be a concern is that the there is a deprecation for Is it account balance query? Am I right? Jesse? >> Jesse's not here. >> Angie, am I right about that? I know. Is it the account balance query? >> Yeah, the account balance query is being deprecated. I am working on the PR for it right now. >> Yeah, but the uh some SDKs it is going to be deprecated on 9th, but some SDKs they are they are forgotten. >> Mhm. In in what SDKs is it done? >> Um I believe it's done Give me 1 second. I know it's done for Java. >> And there is a PR for for for that in JS. >> Yeah, and then I will have a PR for it in Python shortly. >> Okay. Okay. >> But >> And can somebody in all the others maybe whistle link to the um pull request for Java and maybe I mean if it's duplicated I hope there is something in the SDK hub about it. Um whistle link to that create issues in the other SDKs. >> Yeah, I think I think I'm going to do that. I'm going to create uh some issue I'm going to create that issue in the in the Swift and also the C++ but when when I'll create in the Swift cuz But I Angie has that Angie issues. I think she can create that. >> Okay. >> Yes, Keith has something currently in the SDK collaboration hub um regarding updating the mirror node account balance query proposal. So, it's not merged yet. So, I'm guessing it's something he's still working on. But because we're coming up so close to the 9th uh we felt better just having something submitted for now and then if there are any changes to it after Keith's PR is merged then we'll make the changes accordingly. >> Give me a second. So, >> Uh his PR in the SDK collaboration hub is uh 282. >> Uh now I know where this is coming from. Um Maybe I will support on that. Yeah. I'm I'm the blocker on that. So, if you because I said it it must be done in a in a kind of different area. And if you look at 283, you see um that based on discussions I had um when I reviewed the thing in Java and so on, I said we need a more specific HTTP API. >> I um And with that, um they started to to work on it. You see guy on on um 283, that I commented a lot of it. And my last message is that I said, "Yeah, yeah, and I already did that for the V3s pack, where all of that has already been done, which don't help us at all here. Um But, yeah, that was that I said, "Yeah, that This is not the way how it should be done." Um So, I assume I I was the troublemaker at that point. >> No. >> Okay. >> How dare you? No, I'm just kidding. >> [clears throat] >> Uh and the question is when when you do it, I mean having something temporary would be fine, but even for the other ST case, it would make totally sense to think about how HTTP request should be done because so far we had everything GRPC, and now we have some codes to mirror node that use HTTP. And um For that, several other things need to be concerned and and need to to be re-synced. Um You will see it when you look at my my comments um what I'm thinking about. >> [snorts] >> That's that's why I think more investment is is needed here. What I don't know is how that affects any things that should be deprecated in two days. I had no idea about that timeline. Where's that timeline defined? >> I believe the timeline is actually defined in one of the Discord channels. Uh there were a couple of people from Hedera posting about it and then there have been frequent posts more or less just reminding everyone that it the deprecation will go into effect by the 9th. >> Mhm, okay. >> Uh most if I think a few of the SDKs um and Daniel said they're aware Java being one of them. I don't know if all the SDKs will necessarily have it done by the 9th, but a few of them should. >> Mhm, okay. Interesting. Good. >> So uh I think Andy you're going to help us undo that. Then uh I think I'll work on that in the Swift and place the PR there. >> Yep, I'll have the PR for Python coming up shortly. I'm just working through it right now. >> Uh yeah, okay. So you you help me create those issues in the C++ and the and uh what? And the Swift Oh, by the way, uh is also the Rust SDK being worked on on that. >> And yeah, I think Rob is actually coming back for C++. So, I can reach out to him and see if that's on his to-do list. But, from what I understand, uh his priorities should have shifted back to C++, so he should be around a little bit more. But, I can confirm with him. >> I said, "Okay, create create I think you create for the Rust, the C++, and the Swift SDK." Those that issue then we'll see how to do that. >> Would it be possible, Angie, once it's done to write a blog post about it? That we now have a patent method and and a replacement for it. I believe that would make sense. >> Mhm. I can put something up on the website for it. That's fine. >> Awesome. That's That's great. >> Yeah. >> Such a great team. Thank you all. Cool. >> Um I see our score is excellent at the LFX insights, so we are not bad. >> That's good. That's good. >> We have a health score of excellent. We don't have any vulnerabilities. Uh yeah. I our maintainer our maintainer health is 37 out of 40, so. Yeah, not as bad. >> Nice. Nice. Nice. Nice. Cool. So. Thank you all. And then see you. Tomorrow in other meetings, right? >> Yeah. >> Okay. >> Bye-bye. >> Bye. >> Bye. Have a good one. >> Bye. >> Mhm.