![image](https://images.hive.blog/0x0/https://files.peakd.com/file/peakd-hive/threespeak/23uQNvHfQ5FuxvKKHS3bqh2rCLyjC8vqXyJ7CaoFtr6edMgSo68RaCWzpNbzkRdjUeRKC.png)
https://www.dropbox.com/scl/fi/8tqekcj0tfudwkq7xi40w/3Speak-Sagar-Updates-27-Feb-2024.mp4?rlkey=hwe4sncd4ithxk6eftytp9wi4&dl=0
@eddiespino - please upload this video
Hello @threespeak Community Members & Hive Community Members,
With this post, I'll share the development updates & items on which I (@sagarkothari88) was working. Accidently, OBS decided to pick a different audio device & due to which no audio was captured. You can find updates as follows.
## Setting Up Acela-core
- Acela-Core is a new backend core for decentralized video applications on HIVE
- It supports both offchain & onchain data.
- I (@sagarkothari88) checked it out locally & resolved all the issues he faced.
### Setting up .env & resolving related issues
- To run, you need some of configs.
- After co-ordinating with team, I got necessary env variables
- Even after that, I faced some of errors due to some missing env vars
- After disabling cluster related services, I was able to move forward
### TUSd uploader
- At first, I was unaware & I was running TUSd instance on my own.
- After knowing that, there is a script already for it, I closed that instance & ran on my own.
- https://github.com/spknetwork/acela-core/blob/main/runTusd.sh
- With that, I had running TUSd uploader locally
### TUSd Hooks
- Even after running it, It kept throwing errors.
- I created a `data` folder locally & updated `runTusd.sh` as follows.
- It resolved TUSd issues.
- As you can see here, I changed `upload-dir` from `/data` to `./data`
```shell
tusd -upload-dir=./data/ \
-base-path="/files" \
-host="127.0.0.1" \
-port="1080" \
-behind-proxy \
--hooks-enabled-events pre-create,post-create,post-finish,post-finish,post-terminate,post-receive \
-max-size 5000000000 \
-hooks-http http://localhost:4569/api/v1/upload/tus-callback
```
### Other errors
- I also encountered IPFS Cluster issues
- Those I managed to resolving by coordinating with team.
- Also encountered some compilation errors & got it fixed locally.
- After all of these, I was all set.
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## Learning NestJS
- Acela core is written using NestJS Framework
- It's been over a year & I have not learned about NestJS
- I found a playlist on YouTube to learn NestJS
- I completed approx 18 videos from that playlist
- https://www.youtube.com/playlist?list=PLqLR2H326bY6eRNOXJxWQkvKNlzmJQfLj
- After 18 videos, I decided to start contributing to project acela-core.
![NestJS Video Playlist](https://files.peakd.com/file/peakd-hive/sagarkothari88/23wWT2CTzfNDgQezoy9hmhN7DJ1Y3ggttmuqVQoy8vTzFmkLnQ8tWCikDnxx1o7FQCbgm.png)
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## Acela-Core - Posting Authority before logging in
![Checking for Posting Authority](https://files.peakd.com/file/peakd-hive/sagarkothari88/23t7AyTgukHsGVuz4pQbhrGPJwha5vWcqTkQWjove53QaTgLE8QGRG9xSaBCyRo9BrCEV.png)
- https://github.com/spknetwork/acela-core/pull/8/files
- Granting JWT Token only if posting authority found.
- This JWT Token subsequently will be used for upvote, comment, post etc.
- Without posting authority, all of the operations may fail.
- So, it's best to check at time of login /login_singleton
- It would be front-ends responsibility to get posting authority first.
- After that front-ends can generate proof & proof of payload & - execute/login_singleton for logging in.
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## Acela-Core - Max 5 GB Upload
![File Size](https://files.peakd.com/file/peakd-hive/sagarkothari88/23t7BGkMDtPvJZLgRjMs5yzmWPZYY7fTaeM3qp8bQvipbZQ4RtNg82uxtEYRUBnPZbzq6.png)
- We need to make sure that file size is no bigger than 5 GB
- https://github.com/spknetwork/acela-core/pull/9
- In `src/services/uploader/uploading.service.ts`, I added extra check & it throws error if file size is too big.
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## New FrontEnd - Video Format
- This will be the third check, which we'll be adding in upload process.
- It makes sure that users are uploading video in right format.
- With this, we wish to improve upload experience.
- This work is in progress
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## Exchanging GQL queries
- Juneroy & I exchanged number of GraphQL queries
- With which, he would be able to implement it on New 3Speak FrontEnd
- Shared Queries for followings
- Subscribed feed,
- Trending feed,
- New feed,
- First upload,
- Community Feed,
- Tags Feed
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## What are next tasks?
- Acela-Core - Fix Upvote API
- Acela-Core - `create-upload` API failing
- 3Speak Legacy Studio - Add posting authority using Active Key not working
- 3Speak Legacy Studio - Connect account using Active Key not working
- 3Speak Legacy FrontEnd - 3Speak Twitter handle
- 3Speak Legacy FrontEnd - Update Twitter Icon
- New tasks will be assigned based on daily stand ups
![](https://images.ecency.com/DQme1eL9v9d8qiTY2KdjUACLN5oMFzUQZP9Rpf8uvDhAnhH/hive_divider.png)
## Feedback / Info
- Do you want more Info? Please let me know via the comment section.
- Do you have feedback to share? Please use the comment section.
- Please check the above video & share feedback
---
![color3speak.png](https://files.peakd.com/file/peakd-hive/threespeak/23tRvWvmwuE7SGkXfPhHY8GPxiwaVKnVtzAFwDjuXFM3gWtRS6dr2F4yK4vexmaUHERuK.png)
### <center>Important Links:</center>
|||
|:-:|:-:|
|[3Speak Linktree](https://linktr.ee/3speak)|[SPK Network Linktree](https://linktr.ee/spknetwork)|
| | | | |
|-|-|-|-|
|[3Speak.tv](https://3speak.tv)| [3Speak Twitter](https://twitter.com/3speakonline) | [3Speak Hive Blog](https://hive.blog/@threespeak) | [3Speak Telegram](https://t.me/threespeak) |
| [3Speak in Spanish](https://peakd.com/@threespeak-es/posts) | [Download Android App](https://play.google.com/store/apps/details?id=tv.threespeak.app) | [Download iOS App](https://apps.apple.com/us/app/3speak/id1614771373) | [Download Desktop App](https://github.com/spknetwork/3Speak-app/releases)
| [Join 3Speak Discord](https://discord.gg/NSFS2VGj83) | [Setup Encoder Node](https://ecency.com/hive-181335/@sagarkothari88/retfajht) | [Vote for SPK Network Proposal](https://peakd.com/hive-112019/@spknetwork/spk-network-funding-proposal-rhnv7e) | [Badge Recipients](https://peakd.com/b/badge-181335/recipients) |
|||
|:-:|:-:|
[![appStore](https://i.imgur.com/enwTLng.png)](https://apps.apple.com/us/app/3speak/id1614771373) | [![GooglePlayStore](https://i.imgur.com/6K5fgGX.png)](https://play.google.com/store/apps/details?id=tv.threespeak.app)|
### <center>[Vote for 3Speak as Witness](https://vote.hive.uno/@threespeak) - [![Support @threespeak](https://images.hive.blog/u/threespeak/avatar)](https://vote.hive.uno/@threespeak)</center>
### <center>[Vote for Sagarkothari88 as Witness](https://vote.hive.uno/@sagarkothari88) - [![Support @sagarkothari88](https://images.hive.blog/u/sagarkothari88/avatar)](https://vote.hive.uno/@sagarkothari88)</center>
</div>