[RELEASE] node-sro-proxy - Opensource middleware/security layer

09/09/2020 17:19 Otakanikaru#1
Moved
[Only registered and activated users can see links. Click Here To Register...]
09/10/2020 19:27 DarkShroud#2
thanks for contributing , a new step in a dead community ...
09/12/2020 20:48 Otakanikaru#3
Quote:
Originally Posted by dR. [d3V][GM][PR0] 39YP7 View Post
nice seeing someone making an effort
but guess what, it's not going to do shit the game is dead you bunch of retards
Thats how you call yourself?
- Because we are the game.
09/14/2020 19:35 kebabas1600#4
Quote:
Originally Posted by Artuuro_lv View Post
Thats how you call yourself?
- Because we are the game.
lets play this game
atm still fixing packets since some of br ones aint same xD
09/18/2020 10:29 Otakanikaru#5
Quote:
Originally Posted by kebabas1600 View Post
lets play this game
atm still fixing packets since some of br ones aint same xD
just set in your module your config to dev: true and see the packets
11/10/2020 10:49 Otakanikaru#6
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
[Only registered and activated users can see links. Click Here To Register...]
11/10/2020 22:03 Beba Army#7
Quote:
Originally Posted by Artuuro_lv View Post
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
[Only registered and activated users can see links. Click Here To Register...]
what this does? have to add inside filter?
11/11/2020 02:44 Otakanikaru#8
Quote:
Originally Posted by Beba Army View Post
what this does? have to add inside filter?
This is the way how the proxy now works (latest commits).
Basically there is a master process that will spawn a child for each client connected and this child will act as the proxy while master is routing the packets from to client separately and redirects them to slaves.
This way we can keep the client connections very stable and smooth as each instance works with client separately - only doubts that I have not yet tested is the limitations of process.fork in nodejs.
Will let know soon.
11/11/2020 17:50 SubZero**#9
Awesome work
11/17/2020 13:46 gigola123#10
Quote:
Originally Posted by Artuuro_lv View Post
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
[Only registered and activated users can see links. Click Here To Register...]
Nice idea, how it'll work exactly ? Every slave will be a little "tcp proxy" ? Then return to Master everytime there is a packet processing? Then master will accept or not to forward ?

Or you put all the same logic on every slave ?

Sorry didn't make a look on code before asking this
11/19/2020 12:02 Otakanikaru#11
Quote:
Originally Posted by gigola123 View Post
Nice idea, how it'll work exactly ? Every slave will be a little "tcp proxy" ? Then return to Master everytime there is a packet processing? Then master will accept or not to forward ?

Or you put all the same logic on every slave ?

Sorry didn't make a look on code before asking this
Yea you've guessed right - master decides whether the packet will be routed or not - slave can do that as well with this I will be also able to have good way of packet broadcasting, e.g. the master could broadcast a message from another slave (lets say event bot) to the ones it wants or everyone and so on..

Next steps will be implementing this [Only registered and activated users can see links. Click Here To Register...] and making an scriptable game event API.

Another cool thing: [Only registered and activated users can see links. Click Here To Register...]
(entire sro database turned into JavaScript models / schemas) with little bit of expressjs magic this becomes an actual rest API that slaves can use to get / send data to.
11/19/2020 12:54 gigola123#12
Quote:
Originally Posted by Artuuro_lv View Post
Yea you've guessed right - master decides whether the packet will be routed or not - slave can do that as well with this I will be also able to have good way of packet broadcasting, e.g. the master could broadcast a message from another slave (lets say event bot) to the ones it wants or everyone and so on..

Next steps will be implementing this [Only registered and activated users can see links. Click Here To Register...] and making an scriptable game event API.

Another cool thing: [Only registered and activated users can see links. Click Here To Register...]
(entire sro database turned into JavaScript models / schemas) with little bit of expressjs magic this becomes an actual rest API that slaves can use to get / send data to.

[Only registered and activated users can see links. Click Here To Register...]
What about master multiprocess, in case there is multi agent server filter ? In case you want a communication between all AgentServer (for event purpose). I used redis but too much factor to handle and I wanted something simple.

This filter if perfect to use on an other server, like a simple server @ digitalocean, really nice work Artuuro :). I'll probably try to optimize SilkroadSecuiryJS if I've time in futur.

And really nice stuff about the Sro DB representation with Sequelize model, I use Sequelize for 5 years now and it's a real perfect orm, I'll use your stuff here for some test purpose, if you want I contributed on a little lib for handle more querystring stuff (for use "like", "between" ect..) ([Only registered and activated users can see links. Click Here To Register...]).

I hope I'll have time to contribe to this project, too much work thoses weeks, GG for everything :D
11/19/2020 16:45 Otakanikaru#13
Quote:
Originally Posted by gigola123 View Post
What about master multiprocess, in case there is multi agent server filter ? In case you want a communication between all AgentServer (for event purpose). I used redis but too much factor to handle and I wanted something simple.

This filter if perfect to use on an other server, like a simple server @ digitalocean, really nice work Artuuro :). I'll probably try to optimize SilkroadSecuiryJS if I've time in futur.

And really nice stuff about the Sro DB representation with Sequelize model, I use Sequelize for 5 years now and it's a real perfect orm, I'll use your stuff here for some test purpose, if you want I contributed on a little lib for handle more querystring stuff (for use "like", "between" ect..) ([Only registered and activated users can see links. Click Here To Register...]).

I hope I'll have time to contribe to this project, too much work thoses weeks, GG for everything :D
ATM been only doing this for single agentserver as my own project runs only one - might look into that at future.
11/26/2020 23:59 Otakanikaru#14
New version is out!
Changelog:
- Shared DB api server - workers can now access database without doing it on the same thread
- Fully exported schemas in sequelize.js for entire SRO database.
- Added 3 new API services representing main databases used.
- Added auto-crud.
- IP Blacklist example

New updates (27.11.2020):
Changelog:
- Added IP/HWID blocking (blacklisting).
- Added HWID dll (comes from sr_proxy)
- More express handles
- Added weather packet handler allows to set constant type of weather in game (snowing everywhere, all the time).
12/12/2020 16:40 Otakanikaru#15
New version 2.0.2
- Refactoring/Code improvements
- Actually working HWID/IP limits
- HWID blacklisting
- User Session + Connection / DC detection
- Added Shared "cross-database" API access for all server modules
- Instance saving/updating in database
- User can now be gracefully disconnected from almost anywhere in the code
- Added ".bat" launchers for noobs

Required pk2 edits
TextUISystem.txt
Code:
1	UIIO_SMERR_ADULT_ONLY_SERVER	해당 서버는 만 18세 이상의 성인만 접속 할 수 있습니다.	0	0	0	0	0	Connection limit reached.	ChØ ng*êi trªn 18 tuæi míi ®*îc phÐp kÕt nèi víi m¸y chñ	0	0	0	0	0	0
Code:
1	UIIO_CLIENT_START_CONTENT_FAIL_BILLING_RELATED	빌링 서버 에러로 접속할 수 없습니다. 	0	0	0	0	0	HWID Validation failed!\nPlease restart your client.	Kh«ng thÓ kÕt nèi do lçi cña m¸y chñ	0	0	0	0	0	0
Code:
1	UIO_MSG_ERROR_NO_ACCOUNT_INFO_GOTO_HOMEPAGE	게임에 접속하기 위한 추가 정보가 없습니다.	0	0	0	0	0	Access denied!	Kh«ng t×m thÊy th«ng tin chi tiÕt cÇn thiÕt ®Ó kÕt nèi víi trß ch¬i	0	0	0	0	0	0	
1	UIO_MSG_ERROR_NO_ACCOUNT_INFO_GOTO_HOMEPAGE_1	추가정보 입력을 위해 실크로드 홈페이지로 이동합니다.	0	0	0	0	0	Visit our website for additional information.	B¹n ®ang vµo chuyÓn sang trang chñ cña Con §*êng T¬ Lôa ®Ó khai b¸o thªm th«ng tin	0	0	0	0	0	0	
1	UIO_MSG_GOTO_URL	https://silkroad.pw	0	0	0	0	0	https://silkroad.pw/	https://silkroad.pw/	0	0	0	0	0	0

[Only registered and activated users can see links. Click Here To Register...]